如何从chrome扩展获取窗口句柄(int)?

时间:2013-08-26 15:25:58

标签: javascript google-chrome google-chrome-extension window-handles

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

在事件中我得到了tab对象,我得到了chrome的内部窗口id,但这不是windows中的句柄。

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

谢谢!

1 个答案:

答案 0 :(得分:0)

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

在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;
}

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