1. TerminateProcess(GetCurrentProcess{ 进程句柄 }, 0); TerminateProcess( OpenProcess(PROCESS_TERMINATE, False, GetCurrentProcessId), 0) 2.uses TlHelp32;//... var vSnapshot: THandle; vProcessEntry32: TProcessEntry32; B: Boolean; begin vSnapshot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); try vProcessEntry32.dwSize := SizeOf(TProcessEntry32); B := Process32First(vSnapshot, vProcessEntry32); while B do begin { TODO : 处理vProcessEntry32 } B := Process32Next(vSnapshot, vProcessEntry32); end; finally CloseHandle(vSnapshot); end; end;如果你想杀系统进程可以把老K的代码下来看看~~ http://www.soulan.com/kingron/dispbbs.asp?BoardID=17&ID=141
我以前是这么用过不知道能否满足你的要求 var hWndAppClose:HWnd; begin hWndAppClose:=FindWindow(……);//先获得要关闭的窗口的句柄 if hWndAppClose<>0 then SendMessage(hWndAppClose,WM_CLOSE,0,0);//给要关闭的窗口发送一个close消息 end;
我的意思是终止一个borland pascal编译的程序 该程序源代码: program a1; var f : text; i,j : integer; begin for i := 1 to 1000 do for j := 1 to 1000 do begin end; assign(f,'a.out'); rewrite(f); writeln(f,'a'); close(f); end. 若用句柄终止,会出现RuntimeError150
TerminateProcess(
OpenProcess(PROCESS_TERMINATE, False, GetCurrentProcessId), 0)
2.uses TlHelp32;//...
var
vSnapshot: THandle;
vProcessEntry32: TProcessEntry32;
B: Boolean;
begin
vSnapshot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
try
vProcessEntry32.dwSize := SizeOf(TProcessEntry32);
B := Process32First(vSnapshot, vProcessEntry32);
while B do
begin
{ TODO : 处理vProcessEntry32 }
B := Process32Next(vSnapshot, vProcessEntry32);
end;
finally
CloseHandle(vSnapshot);
end;
end;如果你想杀系统进程可以把老K的代码下来看看~~
http://www.soulan.com/kingron/dispbbs.asp?BoardID=17&ID=141
var
hWndAppClose:HWnd;
begin
hWndAppClose:=FindWindow(……);//先获得要关闭的窗口的句柄
if hWndAppClose<>0 then
SendMessage(hWndAppClose,WM_CLOSE,0,0);//给要关闭的窗口发送一个close消息
end;
该程序源代码:
program a1;
var f : text;
i,j : integer;
begin
for i := 1 to 1000 do
for j := 1 to 1000 do
begin
end;
assign(f,'a.out');
rewrite(f);
writeln(f,'a');
close(f);
end.
若用句柄终止,会出现RuntimeError150