win2000中是NT内核,和win98的内核不同。两者关于进程的API也有很大的不同。比如取进程ID。
解决方案 »
- 如何分离出音频,并在另一台机子上播放?
- 在TEdit中如何得到上次输入的内容?
- Indy 9自带demo "DNSResolver Client" 编译出错,但其他的demo都可以,真是怪事。请大家帮忙看一下
- delphi + ado + sqlserver2000如何完全和差异备份数据库?
- 今天下午就可以见到MM了。开心散分。
- fastreport2.5的安装问题
- 急问:delphi与SQL SERVER的连接?
- 函数可选参数?
- 一个MEMO控件里,还有一个菜单,如何在菜单里实现UNDO,CUT,COPY ,PASTE这些功能?
- bluestar007 --- 我他妈的扁死你个小王八蛋!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
- VCL高手请注意 如何实现VCL一个数组属性?
- acdsee的读图速度就是快,delphi的image控件为什么没ACDSEE的快呢?它们各自的读图算法究竟有何不同呢?哪位高手知道,谢啦!
[email protected],谢谢!!!
procedure TForm1.Button1Click(Sender: TObject);
var Res: DWORD;
H: HWND;
begin
H := FindWindow(nil, 'FormSomeCaption');
if H = 0 then
Label1.Caption := 'Window not found'
else
if SendMessageTimeout(H, WM_NULL, 0, 0, SMTO_NORMAL, 100, Res) <> 0
then
Label1.Caption := 'Responding'
else
Label1.Caption := 'Not responding';
end;And to Kill it, no questions asked, then..procedure TForm1.ButtonClick(Sender: TObject);
VAR ProcessHandle: THANDLE;
WinHwnd: HWND;
ProcessID,ExitCode: INTEGER;
begin
ProcessID:= 0;
ExitCode:= 0; WinHwnd:= FindWindow(nil,'FormSomeCaption');
if NOT(IsWindow(WinHwnd)) then
begin
ShowMessage('Window NOT found');
exit;
end; GetWindowThreadProcessID(WinHwnd,@ProcessID);
ProcessHandle:= OpenProcess(PROCESS_CREATE_THREAD OR
PROCESS_VM_OPERATION
OR PROCESS_VM_WRITE OR PROCESS_VM_READ OR
PROCESS_TERMINATE,
FALSE,ProcessID);
if (ProcessHandle > 0) then
BEGIN
GetExitCodeProcess(ProcessHandle,ExitCode);
// or GetExitCodeProcess(ProcessHandle,DWORD(ExitCode));
TerminateProcess(ProcessHandle,ExitCode);
CloseHandle(ProcessHandle);
END
ELSE
ShowMessage('Unable to get proccess Handle');
end;