delphi ShellExecute多种用法  
官方Delphi 学习QQ群: 682628230(三千人)
频道

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;

推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.036269187927246 seconds