Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function focus(){
- Components.utils.import('resource://gre/modules/Services.jsm');
- var browserWindow = Services.wm.getMostRecentWindow('navigator:browser');
- if (!browserWindow) {
- throw new Error('No browser window found');
- }
- var baseWindow = browserWindow.QueryInterface(Ci.nsIInterfaceRequestor)
- .getInterface(Ci.nsIWebNavigation)
- .QueryInterface(Ci.nsIDocShellTreeItem)
- .treeOwner
- .QueryInterface(Ci.nsIInterfaceRequestor)
- .getInterface(Ci.nsIBaseWindow);
- var hwndString = baseWindow.nativeHandle;
- Components.utils.import('resource://gre/modules/ctypes.jsm');
- var user32 = ctypes.open('user32.dll');
- /* http://msdn.microsoft.com/en-us/library/ms633539%28v=vs.85%29.aspx
- * BOOL WINAPI SetForegroundWindow(
- * __in_ HWND hWnd
- * );
- */
- var SetForegroundWindow = user32.declare('SetForegroundWindow', ctypes.winapi_abi,
- ctypes.bool, // return BOOL
- ctypes.voidptr_t // HWND
- );
- var hwnd = ctypes.voidptr_t(ctypes.UInt64(hwndString));
- var rez_SetForegroundWindow = SetForegroundWindow(hwnd);
- console.log('rez_SetForegroundWindow:', rez_SetForegroundWindow, rez_SetForegroundWindow.toString());
- user32.close();
- }
- setTimeout(function() { focus(); }, 5000);
Advertisement
Add Comment
Please, Sign In to add comment