📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Timer1: TTimer;
Edit1: TEdit;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
sStartInfo: STARTUPINFO;
seProcess, seThread: SECURITY_ATTRIBUTES;
PProcInfo: PROCESS_INFORMATION;
procedure AllRunProcess;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure Tform1.AllRunProcess;
var
bSuccess: boolean;
begin
ZeroMemory(@sStartInfo, sizeof(sStartInfo));
SStartInfo.cb := sizeof(sStartInfo);
seProcess.nLength := sizeof(seProcess);
seProcess.lpSecurityDescriptor := PChar(nil);
seProcess.bInheritHandle := true;
seThread.nLength := sizeof(seThread);
seThread.lpSecurityDescriptor := PChar(nil);
seThread.bInheritHandle := true;
bSuccess := CreateProcess(PChar(nil), Pchar('mspaint.exe c:\snap.bmp'), @seProcess, @seThread, false, CREATE_DEFAULT_ERROR_MODE
, Pchar(nil), Pchar(nil), sStartInfo, PProcInfo);
if (not bSuccess) then
Memo1.Lines.Add('创建记事本进程失败.')
else
Memo1.Lines.Add('创建记事本进程成功.')
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
AllRunProcess
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
dwExitCode: DWORD;
fprocessExit: boolean;
begin
dwExitCode := 0;
fprocessExit := GetExitCodeProcess
(PProcInfo.hProcess, dwExitCode);
if (fprocessExit and (dwExitCode <> STILL_ACTIVE)) then
begin
Memo1.Lines.Add('NotePad进程终止');
CloseHandle(PProcInfo.hThread);
CloseHandle(PProcInfo.hProcess);
AllRunProcess;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -