請問各位大大如何使用DELPHI來產生 .lnk 的捷徑檔呢? |
尚未結案
|
saam
初階會員 ![]() ![]() 發表:61 回覆:75 積分:27 註冊:2003-03-03 發送簡訊給我 |
|
william
版主 ![]() ![]() ![]() ![]() ![]() 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
This one?
http://delphi.ktop.com.tw/topic.php?topic_id=22505
const IID_IShellLink: TCLSID = (D1:$000214EE; D2:$0; D3:$0; D4:($C0,$0,$0,$0,$0,$0,$0,$46)); IID_IPersistFile: TGUID = (D1:$0000010B;D2:$0000;D3:$0000;D4:($C0,$00,$00,$00,$00,$00,$00,$46)); function CreateLink(const lpszPathObj, lpszPathLink, lpszDesc: PChar): HRESULT; var hres: HRESULT; psl: IShellLink; ppf: IPersistFile; wsz: array[0..MAX_PATH] of WideChar; begin hres := CoCreateInstance(CLSID_ShellLink, nil, CLSCTX_INPROC_SERVER, IID_IShellLink, psl); if (SUCCEEDED(hres)) then begin psl.SetPath(lpszPathObj); psl.SetDescription(lpszDesc); hres := psl.QueryInterface(IID_IPersistFile,ppf); if (SUCCEEDED(hres)) then begin MultiByteToWideChar(CP_ACP, 0, lpszPathLink, -1, wsz, MAX_PATH); hres := ppf.Save(wsz, TRUE); ppf := nil; end; psl := nil; end; Result := hres; end; |
saam
初階會員 ![]() ![]() 發表:61 回覆:75 積分:27 註冊:2003-03-03 發送簡訊給我 |
|
william
版主 ![]() ![]() ![]() ![]() ![]() 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
saam
初階會員 ![]() ![]() 發表:61 回覆:75 積分:27 註冊:2003-03-03 發送簡訊給我 |
謝謝 william 大大:
未定義的變數的問題己經解決了,
但是程式執行到 hres := CoCreateInstance(CLSID_ShellLink, nil,CLSCTX_INPROC_SERVER,IID_IShellLink, psl);
這行後 SUCCEEDED(hres) 都是失敗, 進不到if裏面的程式碼~
請問大大要如何解決呢?
另外使用function方式是不是 CreateLink ('要建立捷徑的檔案路徑 檔名','建立捷徑的路徑','捷徑名稱 .lnk') 呢??
謝謝 william 大大
|
william
版主 ![]() ![]() ![]() ![]() ![]() 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
saam
初階會員 ![]() ![]() 發表:61 回覆:75 積分:27 註冊:2003-03-03 發送簡訊給我 |
|
william
版主 ![]() ![]() ![]() ![]() ![]() 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
william
版主 ![]() ![]() ![]() ![]() ![]() 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
saam
初階會員 ![]() ![]() 發表:61 回覆:75 積分:27 註冊:2003-03-03 發送簡訊給我 |
|
pcboy
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
引言: 另外使用function方式是不是 CreateLink ('要建立捷徑的檔案路徑 檔名','建立捷徑的路徑','捷徑名稱 .lnk') 呢??可否舉例說明, 小弟用下面測試, 沒有在 C:\ 中產生 A 捷徑, 該怎樣用 ? THANKS ! CreateLink ('C:\AUTOEXEC.BAT', 'C:\', 'A.LNK'); CreateLink ('C:\AUTOEXEC.BAT', 'C:\AUTOEXEC.BAT', 'A.LNK'); CreateLink ('C:\\BOOT.INI', 'C:\\BOOT.INI', 'A.LNK'); 發表人 - pcboy2 於 2004/09/06 12:30:04
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案! 子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問! |
wameng
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |