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 调用相应程序打开网址

Delphi memo 控件光标定位

Delphi xe取得硬盘序列号代码 复制代码

Delphi 图像分割

Delphi 自动把combobox控件的内容里没有的内容加入列表中

Delphi中break,exit,abort跳出循环的比较

Delphi jpeg压缩的两种方法

Delphi 监视剪贴板内容

Delphi firemonkey 图片显示拉伸不变形

Delphi中exit,abort,break,continue,halt,runerro 的区别

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



打赏

取消

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

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

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

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

评论

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