Node.js win32api获取并设置具有窗口进程id的窗口标题



如何实现我在主题中所写的内容?我可以访问我的节点应用程序中的win32api,并且我知道我想要更改的窗口processID。我知道函数EnumWindows()GetWindowThreadProcessId()在这方面会很有用,但我甚至不知道将什么作为参数传递给EnumWindows(),以及这个函数将返回什么。

使用EnumWindows时,首先需要确保您的窗口是顶级的。

该功能有两个参数:

lpEnumFunc

类型:WNDENUMPROC

指向应用程序定义的回调函数的指针。了解更多信息信息,请参见EnumWindowsProc

lParam

类型:LPARAM

要传递给回调函数的应用程序定义的值。(您可以将进程id传递给它(

您可以在回调EnumWindowsProc中调用GetWindowThreadProcessId,并与找到的每个窗口的进程id进行比较。

这是C++中的示例:

#include <windows.h>
#include <iostream>
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
{
DWORD *pid = (DWORD*)(lParam);
DWORD processId;
if (GetWindowThreadProcessId(hwnd, &processId) && processId == *pid)
{
WCHAR Title[MAX_PATH] = { 0 };
GetWindowTextW(hwnd,Title, MAX_PATH);
wprintf(L"Title : %sn", Title);
SetWindowTextW(hwnd, L"TestTitle");
return FALSE; //end enumerating;
}
// Continue enumerating
return TRUE;
}
int wmain(int argc, wchar_t* argv[])
{
DWORD pid = 11244;//set the process id you have.
BOOL bResult = EnumWindows(EnumWindowsProc,(LPARAM)&pid);
return 0;
}

关于在node.js中使用EnumWindowsProc回调,您可以参考此示例。

相关内容

  • 没有找到相关文章

最新更新