#include<windows.h>
#include<tchar.h>
int _tmain()
{
HANDLE hProcess = GetCurrentProcess(); //获取当前进程的句柄
_tprintf(L"hProcess=%d\n", hProcess);
DWORD sessionid = 0;
DWORD processid = 0;
processid = GetProcessId((HANDLE)-1); //获取进程的ID
HANDLE hProcess1 = OpenProcess(PROCESS_ALL_ACCESS, FALSE, GetProcessId((HANDLE)-1));//打开进程
HANDLE hProcess2;
DuplicateHandle((HANDLE)-1, (HANDLE)-1, (HANDLE)-1, &hProcess2, NULL, FALSE, 0); //复制进程,但是hProcess1和hProcess2不同
_tprintf(L"hProcess1=%0x\n,hprocess2=%0x\n", hProcess1, hProcess);
CloseHandle(hProcess1);
CloseHandle(hProcess2);
_gettchar();
return 0;
}
GetProcessId的使用
DWORD WINAPI GetProcessId( _In_ HANDLE Process );
Parameters
-
Process [in]
-
A handle to the process. The handle must have the PROCESS_QUERY_INFORMATION or PROCESS_QUERY_LIMITED_INFORMATION access right. For more information, see Process Security and Access Rights.
DWORD WINAPI GetProcessId( _In_ HANDLE Process );
Parameters
-
Process [in]
-
A handle to the process. The handle must have the PROCESS_QUERY_INFORMATION or PROCESS_QUERY_LIMITED_INFORMATION access right. For more information, see Process Security and Access Rights.