是否有 Win32 API 可以呼叫清除「開始→文件」內的已開啟文件記錄 |
答題得分者是:hagar
|
Dalman
一般會員 ![]() ![]() 發表:27 回覆:22 積分:24 註冊:2002-08-21 發送簡訊給我 |
|
hagar
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
天外來客
初階會員 ![]() ![]() 發表:22 回覆:199 積分:44 註冊:2001-11-27 發送簡訊給我 |
【資料來源】
為了解決上述「不留痕跡」問題,從別的網站找出兩個Win32 API函式: 要正確地取得特殊資料夾的所在目錄,可呼叫 SHGetSpecialFolderLocation 及 SHGetPathFromIDList API 函數(源自http://www.hosp.ncku.edu.tw/~cww/html/system.html,VB心得筆記),而「最近開啟的文件」特殊目錄代碼為8(十進位)。 【請教】
若各位大大有經驗使用此兩個函式,能否在此提供在Delphi實作上的經驗或該注意的地方?謝謝
|
hagar
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
要清除 「開始→文件」內的已開啟文件記錄, 用上述的方法即可。
至於 SHGetSpecialFolderLocation 及 SHGetPathFromIDList 兩個
API 的用法, 底下有一個範例可參考:
uses ShlObj; procedure TForm1.Button1Click(Sender: TObject); var pidl: PItemIDList; FavPath: array[0..MAX_PATH] of char; temp: array [1..11] of integer; i: byte; begin temp[1] := CSIDL_DESKTOP; // 桌面 temp[2] := CSIDL_DESKTOPDIRECTORY; // 桌面目錄 temp[3] := CSIDL_FONTS; // 字體目錄 temp[4] := CSIDL_NETHOOD; // 網路芳鄰 temp[5] := CSIDL_PERSONAL; // My Documents 目錄 temp[6] := CSIDL_PROGRAMS; // 開始選單程序目錄 temp[7] := CSIDL_RECENT; // 存放最近開啟文件快捷方式的目錄 temp[8] := CSIDL_SENDTO; // "傳送至" 目錄 temp[9] := CSIDL_STARTMENU; // 開始選單目錄 temp[10] := CSIDL_STARTUP; // 開始選單啟動項目錄 temp[11] := CSIDL_FAVORITES; // 我的最愛目錄 for i:= 1 to 11 do begin SHGetSpecialFolderLocation(Handle, temp[i], pidl); SHGetPathFromIDList(pidl, favpath); ListBox1.Items.Add(StrPas(FavPath)); end; end;發表人 - hagar 於 2002/08/29 18:08:40 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |