右键卡卡转圈圈…Delphi执行外部程序 ShellExec API习作

右键卡卡转圈圈…Delphi执行外部程序 ShellExec API习作

前言动机:
电脑内软件愈灌愈多,有些会在右键添个捷径。於是,每次点右键 ”快捷键” 总是在绕圈圈,等到天长地久、地老天荒,尤其是刚开机之後、”电脑总管”更严重。或许是我电脑中毒? 还是机器太旧?
於是,想写个”档案总管”试试。
先看看如何在FileListBox中点选档案时,执行外部程序吧。
环境:Win 10 64x Delphi RAD10.4

下载 Source+执行档

https://ithelp.ithome.com.tw/upload/images/20210821/20111373YjOzYa3h9o.jpg
部份程序码:
引用 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;

<<:  我朋友最近跟我阐述了一个惨痛的系统购买经验(一)

>>:  解决 "No manual entry for gcc" 的记录

Day 5 安装Prometheus

2021 铁人赛 DAY5 昨天已经简单介绍过Prometheus了,今天要来将他装在我们的丛集里,...

Day23 create React Navigation

昨天己经安装了react-router-dom,在index.js页面中导入 BrowserRout...

9.unity物件侦测(碰撞Collider2D)

碰撞器2D (参阅Collider 2D) 碰撞器可以让物体碰撞停下、设定障碍物;也可以达成捡金币、...

Youtube Reports API 教学 - 频道中出报表

「鲑鱼均,因为一场鲑鱼之乱被主管称为鲑鱼世代,广义来说以年龄和脸蛋分类的话这应该算是一种 KNN 的...

Day 27:如何写出一篇还不错的技术文章?

身为技术人,我想大家都有在网路上 Google 寻找资料的经验。从许多热心网友的技术文章中,找到我们...