请问,各位大哥!怎样才能得到一个,非当前进程的句柄?
(进程名和进程的ID已知道了)
(进程名和进程的ID已知道了)
解决方案 »
- 右键弹出菜单问题
- 怎样在桌面上创建Internet快捷方式?
- 请问:在调试 Delphi 程序,老是报内存错误“bordbk50.dll”。该怎么解决?
- 高分求助!!关于ToolBar的问题!!!
- GreatSuperYoyoNC(幽幽) 接分
- 如何实现在wwdbgrid得列头加上一个combobox,可以过滤相应得记录
- 一个头痛问题,高分请教。。。。
- 广州的朋友可以进来看一看。
- 谁能用API禁用光驱?谢了!
- 关于ORACLE数据库与delphi中的QUERY之ParamByName问题!!!(在线等待)
- 老马(Oldhorse)快来???(m-Sony找你有事)
- 如何在BCB中使用MFC,以及混用VCL和MFC?请提供相关的详细资料。200分相送!!
最多只能知道进程名吧,PID每次都不一样的;
你想要得到他的句柄用findwindow(窗口类名,nil)或是findwindow(nil,窗口名)但都不是很好用
最好是枚举所有的进程,来查找你要的进程,然后得到它的句柄;下面的代码你可以参考一下:
------------------------------
...
FSnapshotHandle:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
FProcessEntry32.dwSize:=Sizeof(FProcessEntry32);
Con_Loop:=Process32First(FSnapshotHandle,FProcessEntry32);
while Con_Loop do
begin if FProcessEntry32.szExeFile='你想要处理的进程名' then
begin
OPenProcess(PROCESS_TERMINATE,false,FProcessEntry32.th32ProcessID)
//这里是请求关闭进程的访问请求码PROCESS_TERMINATE;
//其它的自己去查DH;
//OPendProcess()返回的就是你要处理进程的句柄;
...
end;
...GOOD LUcK...
请问 各路英雄豪杰 怎么做?,先谢谢了/////////////////////////////////////////////////////////////////////////////
Var
Snapshot: DWord;
MsgProcess: PROCESSENTRY32;
begin
Snapshot := CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS ,GetCurrentProcessId() ) ;
MsgProcess.dwSize := 296 ; // 获得第一个进程
Process32First(Snapshot, MsgProcess) ;
Memo1.lines.Add
( Format('进程ID号:%d 文件名:%s',
[MsgProcess.th32ProcessID,
MsgProcess.szExeFile])
); // 循环取列举的进程名称
While (True) Do
Begin
If Process32Next(Snapshot,MsgProcess)= False Then Exit;
Memo1.lines.Add
( Format('进程ID号:%d 文件名:%s',
[MsgProcess.th32ProcessID,
MsgProcess.szExeFile])
);
End ;
end;
//////////////////////////////////////////////////////////////////////////////
用OpenProess() 可以获得句柄的,谢谢 deanchang(鱼) 的例子 Thanks