Unit1.pas
上传用户:psxgmh
上传日期:2013-04-08
资源大小:15112k
文件大小:1k
- unit Unit1;
- interface
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls;
- type
- TForm1 = class(TForm)
- btnExecute: TButton;
- procedure btnExecuteClick(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
- var
- Form1: TForm1;
- implementation
- {$R *.dfm}
- function WinExecAndWait32(FileName: string; Visibility: Boolean): integer;
- var
- zAppName: array[0..512] of char; //存放应用程序名
- StartupInfo: TStartupInfo;
- ProcessInfo: TProcessInformation;
- exitCode: Dword;
- aVisibility: integer;
- begin
- StrPCopy(zAppName, FileName);
- FillChar(StartupInfo, Sizeof(StartupInfo), #0);
- //给StartupInfo结构体赋值
- StartupInfo.cb := Sizeof(StartupInfo);
- StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
- if Visibility then
- aVisibility := 1
- else
- aVisibility := 0;
- StartupInfo.wShowWindow := aVisibility;
- //调用CreateProcess 创建进程,执行指定的可执行文件
- if not CreateProcess(nil, zAppName, nil, nil, false
- , CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS
- , nil, nil, StartupInfo, ProcessInfo) then
- Result := -1
- else
- begin
- //等待可执行文件退出
- WaitforSingleObject(ProcessInfo.hProcess, INFINITE);
- //得到进程终止状态码
- GetExitCodeProcess(ProcessInfo.hProcess, exitCode);
- result := Exitcode;
- end;
- end;
- procedure TForm1.btnExecuteClick(Sender: TObject);
- begin
- WinExecAndWait32('notepad', True);
- end;
- end.