Delphi ShellExecute多种用法


本文整理自网络,侵删。

 
Example 1
Execute NotePad:

ShellExecute(
  Application.Handle,
  'open',
  'c:\Windows\notepad.exe',
  nil,
  nil,
  SW_SHOWNORMAL
);
Example 2
Open SomeText.txt in NotePad:

ShellExecute(
  Application.Handle,
  'open',
  'c:\windows\notepad.exe',
  'c:\SomeText.txt',
  nil,
  SW_SHOWNORMAL
);
Example 3
Execute a file according to its extension:

ShellExecute(
  Application.Handle,
  'open',
  'c:\MyDocuments\Letter.doc',
  nil,
  nil,
  SW_SHOWNORMAL
);
Example 4
Open web site or a *.htm file with the default web browser.

ShellExecute(
  Application.Handle,
  'open',
  'http://example.com',
  nil,
  nil,
  SW_SHOWNORMAL
);
Example 5
Send an e-mail with a subject and a message body:

var em_subject, em_body, em_mail: string;

begin
  em_subject := 'This is the subject line';
  em_body := 'Message body text goes here';
  em_mail := 'mailto:delphi.guide@about.com?subject=' +
    em_subject + '&body=' + em_body ;
  ShellExecute(
    Application.Handle,
    'open',
    PChar(em_mail),
    nil,
    nil,
    SW_SHOWNORMAL
  );
end;
Example 6
Execute the Windows Calculator and pop up a message when Calc is terminated.

uses ShellApi;

var
  SEInfo: TShellExecuteInfo;
  ExitCode: DWORD;
  ExecuteFile, ParamString, StartInString: string;
begin
  ExecuteFile:='c:\Windows\Calc.exe';
  FillChar(SEInfo, SizeOf(SEInfo), 0);
  SEInfo.cbSize := SizeOf(TShellExecuteInfo);
  with SEInfo do
  begin
    fMask := SEE_MASK_NOCLOSEPROCESS;
    Wnd := Application.Handle;
    lpFile := PChar(ExecuteFile);
    //lpParameters := PChar(ParamString);
      {ParamString can contain the application parameters.}
    //lpDirectory := PChar(StartInString);
      {StartInString specifies the name of the working directory.
      If ommited, the current directory is used.}
    nShow := SW_SHOWNORMAL;
  end;
  if ShellExecuteEx(@SEInfo) then
  begin
    repeat
      Application.ProcessMessages;
      GetExitCodeProcess(SEInfo.hProcess, ExitCode);
    until (ExitCode <> STILL_ACTIVE) or Application.Terminated;
    ShowMessage('Calculator terminated');
  end
  else
    ShowMessage('Error starting Calc!');
end;

相关阅读 >>

Delphi apihook createprocess

Delphi fdmemtable中如何在已有的字段数据集上加入字段

Delphi xe7的android应用取得wi-fi的信息

Delphi 拼接文件路径

Delphi 获取中文/数字星期的函数

Delphi 比较俩组mac地址

Delphi用idhttp提交自定义cookie

Delphi xe6 firemonkey移动应用程序获取android设备屏幕信息

Delphi 从网址链接中提取域名

Delphi 获取网页源代码的最简单办法

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...