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