procedure TForm1.btnCreateProcessOpenClick(Sender: TObject); begin FillChar(SI,sizeof(SI),#0); with SI do begin cb:=sizeof(SI); dwFlags:=StartF_UsesTDHandles or STARTF_USESHOWWINDOW; lptitle:=nil; wShowWindow:=SW_Show; end; CreateProcess(PChar(’C:\WINNT\Notepad.exe’), nil,nil,nil,true,DETACHED_PROCESS,nil,nil,SI,PI); end; 调用CreateProcess函数激活C:\WINNT\Notepad.exe程序后,把它的进程信息存储在变量PI中,然后通过下面的语句来关闭本实例打开的C:\WINNT\Notepad.exe程序:
procedure TForm1.btnCreateProcessCloseClick(Sender: TObject); begin MyHandle:=OpenProcess(PROCESS_ALL_ACCESS, FALSE,PI.dwProcessId); TerminateProcess(MyHandle,0); end; 程序代码如下:
var Form1: TForm1; PI:TProcessInformation; SI:TStartUpInfo; MyHandle:Thandle;
implementation {$R *.dfm} procedure TForm1.btnWinExecClick(Sender: TObject); begin WinExec(’Notepad.exe’,SW_MAXIMIZE); end;
procedure TForm1.btnCreateProcessOpenClick(Sender: TObject); begin FillChar(SI,sizeof(SI),#0); with SI do begin cb:=sizeof(SI); dwFlags:=StartF_UsesTDHandles or STARTF_USESHOWWINDOW; lptitle:=nil; wShowWindow:=SW_Show; end; CreateProcess(PChar(’C:\WINNT\Notepad.exe’),nil,nil,nil,true,DETACHED_PROCESS,nil,nil,SI,PI); end;
procedure TForm1.btnCreateProcessCloseClick(Sender: TObject); begin MyHandle:=OpenProcess(PROCESS_ALL_ACCESS, FALSE,PI.dwProcessId); TerminateProcess(MyHandle,0); //关闭进程 end;
procedure TForm1.btnShellExecuteClick(Sender: TObject); begin ShellExecute(Application.Handle,’Open’,’NotePad.exe’,PChar(’C:\AutoExec.bat’),nil,SW_SHOWNORMAL); end; end.