右鍵卡卡轉圈圈…Delphi執行外部程式 ShellExec API習作
前言動機:
電腦內軟體愈灌愈多,有些會在右鍵添個捷徑。於是,每次點右鍵 ”快捷鍵” 總是在繞圈圈,等到天長地久、地老天荒,尤其是剛開機之後、”電腦總管”更嚴重。或許是我電腦中毒? 還是機器太舊?
於是,想寫個”檔案總管”試試。
先看看如何在FileListBox中點選檔案時,執行外部程式吧。
環境:Win 10 64x Delphi RAD10.4
部份程式碼:
引用 uses ShellAPI;
procedure TForm1.doExec(fPath:string);
begin
//--- 執行外部程式 ( 依系統已設定之連結開啟 )
ShellExecute(Handle, 'open', PChar(fPath),nil, nil, SW_SHOW);
end;
procedure TForm1.btnCloseClick(Sender: TObject);
begin
Close;
end;
procedure TForm1.btnExecClick(Sender: TObject);
var
fTmp,fullPath, fDir,YesNo : string;
flag : Boolean;
begin
fDir := DirectoryListBox1.Directory;
fTmp := FileListBox1.Items[FileListBox1.ItemIndex];
fullPath := fDir+'\'+fTmp;
memFD.Lines.Add(fullPath);
//--- 檔案當然都存在 just for debug
flag := FileExists(fullPath);
if flag then YesNo := 'File Exist'
else YesNo := 'File Not Exist';
memFD.Lines.Add(YesNo);
//--- shellExec ---
doExec(fullPath);
end;