谁可以把这段C的代码帮我转成VB的.

来源:百度知道 编辑:UC知道 时间:2024/09/23 20:48:17
得到窗口句柄就是为了得到进程句柄,,,得到进程pid吧!
用CreateToolhelp32Snapshot进行对系统所有进程进行快照,然后利用Process32First取得第一个进程句柄,然后把得到的PROCESSENTRY32结构体中的szExeFile就是进程名进行比较,利用Process32Next进行循环比较,具体用法看msdn,就可以得到DNF的进程句柄了,,,
附上C/C++代码:
#include<iostream>
#include<windows.h>
#include<Tlhelp32.h>
using namespace std;
DWORD GetProcessID(char *FileName)
{
HANDLE myhProcess;
PROCESSENTRY32 mype;
BOOL mybRet;
//进行进程快照
myhProcess=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); //TH32CS_SNAPPROCESS快照所有进程
//开始进程查找
mybRet=Process32First(myhProcess,&mype);
//循环比较,得出ProcessID
while(mybRet)
{
if(strcmp(FileName,mype.szExeFile)==0)
return mype.th32ProcessID;
else
mybRet=Process32Next(myhProcess,&mype);
}
return 0;
}

int main(){
cout<<GetProcessID("DNF.exe");
return 0;
}
yvhitxcel你的回答只有声明啊,这段代码好像是读取DNF.EXE进程的句柄吧?
没人回答么?

Declare Function CreateProcess Lib "kernel32" Alias "CreateProcessA" (ByVal lpApplicationName As String, ByVal lpCommandLine As String, lpProcessAttributes As SECURITY_ATTRIBUTES, lpThreadAttributes As SECURITY_ATTRIBUTES, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, lpEnvironment As Any, ByVal lpCurrentDriectory As String, lpStartupInfo As STARTUPINFO, lpProcessInformation As PROCESS_INFORMATION) As Long

Type PROCESS_INFORMATION
hProcess As Long
hThread As Long
dwProcessId As Long
dwThreadId As Long
End Type