0

我得到了一个Chrome扩展,并且在新选项卡的情况下,我想在窗口中获得当前窗口的窗口句柄。如何从chrome扩展中获取窗口句柄(int)?

在事件我得到了选项卡对象,我得到了铬的内部窗口ID,但这不是窗口中的句柄。

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

谢谢!

回答

0

嗯,如果有人遇到同样的问题,我解决它使用C++是可以访问的Win32API一个NPAPI插件...

在Invoke方法我已经检查过我的方法(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插件。

+1

你可以扩展一点,但你的答案,如包括示例代码?目前的答案几乎没有用。 –

+0

完成,感谢您的反馈... – Omri