[Dll]Get HWnd By Pid For MapleStory - 用於Dll檢測是否注入正確等等
把以下Code放在要使用的檔案中
同個檔案中的調用:
EnumWindows((WNDENUMPROC)MyEnumProc,0);
請新增全域變數:HWND MShwnd;
給楓之谷外掛DLL使用的。
原理:
透過WinAPI:EnumWindows列舉出所有有Hwnd的東西,
先判斷ClassName是否為楓之谷的遊戲視窗(WinAPI:GetClassName)
在判斷PID是否為自己(因為是DLL注入進去,所以PID一致)
BOOL CALLBACK MyEnumProc(HWND hwnd, LPARAM lParam)
{
DWORD tempPID;
char tempClassName[255] = {0};
char MyClassName[255] = "MapleStoryClass";
GetWindowThreadProcessId(hwnd, &tempPID);
GetClassName(hwnd, tempClassName, 255);
if(MyPID != tempPID)
{
return 1;
}
if(strcmp(MyClassName,tempClassName))
{
return 1;
}
MShwnd = hwnd;
return 0;
}
同個檔案中的調用:
EnumWindows((WNDENUMPROC)MyEnumProc,0);
請新增全域變數:HWND MShwnd;
給楓之谷外掛DLL使用的。
原理:
透過WinAPI:EnumWindows列舉出所有有Hwnd的東西,
先判斷ClassName是否為楓之谷的遊戲視窗(WinAPI:GetClassName)
在判斷PID是否為自己(因為是DLL注入進去,所以PID一致)
留言
張貼留言