線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1917
推到 Plurk!
推到 Facebook!

請問要如何修改捷徑的內容

答題得分者是:supman
alice100001
一般會員


發表:21
回覆:49
積分:19
註冊:2002-09-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-24 13:41:36 IP:220.134.xxx.xxx 未訂閱
我用下面的方式想修改一個捷徑檔的內容,將指定的執行檔的路徑改變一下,但試了好久都不成功,想請問要如何寫呢? 謝謝! function CreateShortcut(strExeFileName, strParameters, strPath, strLinkName: string):Boolean; var strLinkFileName: WideString; shelllinkTemp: IShellLink; persistfileTemp: IPersistFile; begin shelllinkTemp := IshellLink(CreateComObject(CLSID_ShellLink)); with shelllinkTemp do begin SetPath(PAnsiChar(strExeFileName)); SetArguments(PAnsiChar(strParameters)); end; shelllinkTemp.Resolve(0,slr_Update); if persistfileTemp.Save(PWideChar(strLinkName), False) = s_Ok then Result := True else Result := False; end; procedure TForm1.Button1Click(Sender: TObject); begin CreateShortcut(edit1.Text, Edit2.Text, Edit3.Text, Edit4.Text); end; 我用的是Delphi7.0, window2000。
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-24 14:43:12 IP:203.204.xxx.xxx 未訂閱
您好: 參考如下,若捷徑不存在會建立一個捷徑,若存在,則會去修改
使用單元    uses shlobj,comobj,activex;    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 TForm1.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;    procedure TForm1.Button2Click(Sender: TObject);
begin
CreateLink ('C:\AUTOEXEC1.BAT', 'C:\A.LNK', '訊息');
end;
http://delphi.ktop.com.tw/topic.php?topic_id=49020 發表人 - supman 於 2005/04/24 14:45:25
alice100001
一般會員


發表:21
回覆:49
積分:19
註冊:2002-09-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-24 19:12:29 IP:220.134.xxx.xxx 未訂閱
supman您好: 我測試成功了,謝謝您了。
系統時間:2024-05-05 9:11:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!