DWORD pid;
GetWindowThreadProcessId(hWnd,&pid); //获取hWnd对应的进程ID
//获取进程句柄。。
hProcess_1 = OpenProcess(PROCESS_ALL_ACCESS,true,pid);
hProcess_2 = OpenProcess(PROCESS_ALL_ACCESS,true,pid);
//上边两次调用返回值不同。hProcess_1和hProcess_2不一样
//我用的Windows 2000 Server
是不是我理解错了OpenProcess的意思?
谢谢,~:)
GetWindowThreadProcessId(hWnd,&pid); //获取hWnd对应的进程ID
//获取进程句柄。。
hProcess_1 = OpenProcess(PROCESS_ALL_ACCESS,true,pid);
hProcess_2 = OpenProcess(PROCESS_ALL_ACCESS,true,pid);
//上边两次调用返回值不同。hProcess_1和hProcess_2不一样
//我用的Windows 2000 Server
是不是我理解错了OpenProcess的意思?
谢谢,~:)
进程的唯一标示是进程ID
所以两次得到的会不一样象下:
hProcess_1 = OpenProcess(PROCESS_ALL_ACCESS,true,pid);
CloseHandle(hProcess_1);
hProcess_2 = OpenProcess(PROCESS_ALL_ACCESS,true,pid);可能会一样
:)
----------------MSDN 中是这样解释的:
PROCESS_CREATE_PROCESS Used internally.
PROCESS_CREATE_THREAD Enables using the process handle in the CreateRemoteThread function to create a thread in the process.
-----------------Platform SDK 中的解释:
PROCESS_CREATE_PROCESS Required to create a process.
PROCESS_CREATE_THREAD Required to create a thread.
----------------
-_-" 为什么不一样呢? 给个理由先? O.O