0

我有一个 chrome 扩展,如果有新标签,我想在当前窗口中获取窗口句柄。

如果我得到了选项卡对象并且得到了 chrome 的内部窗口 ID,但这不是 Windows 中的句柄。

chrome.tabs.onCreated.addListener(
        function (tab)
        {
            var intMainWindowHwnd = 0; // how to get it? not tab.windowId…
        });

谢谢!

4

1 回答 1

0

好吧,如果有人遇到同样的问题,我使用 C++ 中的NPAPI插件解决了它,该插件可以访问 win32api ......

在调用方法中,我检查了我的方法(GetProcessId)并获得了父进程(因为插件在不同的进程中):

ULONG_PTR MyAddon::GetParentProcessId() // By Napalm @ NetCore2K
{
 ULONG_PTR pbi[6];
 ULONG ulSize = 0;
 LONG (WINAPI *NtQueryInformationProcess)(HANDLE ProcessHandle, ULONG ProcessInformationClass,
  PVOID ProcessInformation, ULONG ProcessInformationLength, PULONG ReturnLength); 
 *(FARPROC *)&NtQueryInformationProcess = 
  GetProcAddress(LoadLibraryA("NTDLL.DLL"), "NtQueryInformationProcess");
 if(NtQueryInformationProcess){
  if(NtQueryInformationProcess(GetCurrentProcess(), 0,
    &pbi, sizeof(pbi), &ulSize) >= 0 && ulSize == sizeof(pbi))
     return pbi[5];
 }
 return (ULONG_PTR)-1;
}

然后我得到了这个过程的主要 hwnd 并将其返回给我的 js 插件。

于 2013-08-29T07:10:50.013 回答