我想知道你是否可以将手柄转换为窗口" HWND"。我需要打电话给" PostMessage"函数使用" FindWindow"方法
我目前必须采购
HANDLE mainProcess;
BOOL APIENTRY ATTACH_PROCESS(int ProcessID)
{
mainProcess = OpenProcess(PROCESS_ALL_ACCESS, true, ProcessID);
return TRUE;
}
BOOL APIENTRY SEND_INPUT(/*NOT USED FOR THIS SAMPLE*/ const char* String, bool Keydown)
{
int ToDo = WM_KEYUP;
if (Keydown)
ToDo = WM_KEYDOWN;
return PostMessage((HWND)mainProcess, ToDo, VK_TAB, NULL);
}
答案 0 :(得分:4)
没有。进程可以创建多个窗口。由于不存在1对1映射,因此这样的函数没有意义。
另一方面,当然可以使用一个函数来返回由进程创建的窗口列表。
答案 1 :(得分:2)
使用mainProcess句柄调用GetProcessId()以获取ProcessID。
调用EnumWindows()
对于每个窗口,调用GetWindowThreadProcessId()以获取与窗口关联的进程的ProcessId。
比较ProcessID,如果它们匹配 - 你找到了你想要的HWND。
这是一项有点昂贵的任务,所以最好先找到你想要的hwnd并存储它。