无垢和云牙 番外:如何取得某进程的句柄 = =?谢谢了

来源:百度文库 编辑:中科新闻网 时间:2024/05/03 03:34:21
有API最好
没有有方法也可以
顺便问一下
GetCurrentProcess是干嘛的??怎用啊??
谢谢了

如果你知道窗口的标题
可以用findwindow来获取句柄
如果只知道进程名
可以用Toolhelp32Snapshot来获得句柄

我给你delphi的做法

uses TLHelp32;

function GetHandle(ExeFileName: string): integer;
const
PROCESS_TERMINATE=$0001;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
result:= 0;
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle,FProcessEntry32);
while integer(ContinueLoop) <> 0 do
begin
if FProcessEntry32.szExeFile=ExeFileName then
Result := FProcessEntry32.th32ProcessID;
ContinueLoop := Process32Next(FSnapshotHandle,FProcessEntry32);
end;
end;

传入进程名,返回进程的句柄

有的,获得指定进程句柄的方法很多.

首先用 CreateToolhelp32Snapshot 获得系统快照然后用 Process32First 获得第一个进程然后用 Process32Next 获得下一个进程依次类推,然后判断如果是想呀的进程用 OpenProcess就可以打开这个进程,获得进程的句柄,然后你可以比如用 TerminateProcess 之类的结束进程.

另外你说的那个API不知道有没有,我懒得去查,不过估计有有的话意思是

Get + Current + Process 翻译过来就是得到当前进程,返回值应该是个句柄.算了帮你查下..

HANDLE GetCurrentProcess(VOID)

解释是:The GetCurrentProcess function returns a pseudohandle for the current process.

意思大致是这个API函数返回当前进程的句柄(pseudohandle 不知道什么意思应该是,没见过这个单词呵呵!)