madhawaseeeee

window focus

Aug 16th, 2015
325
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function focus(){
  2.   Components.utils.import('resource://gre/modules/Services.jsm');
  3. var browserWindow = Services.wm.getMostRecentWindow('navigator:browser');
  4. if (!browserWindow) {
  5.     throw new Error('No browser window found');
  6. }
  7.  
  8. var baseWindow = browserWindow.QueryInterface(Ci.nsIInterfaceRequestor)
  9.                               .getInterface(Ci.nsIWebNavigation)
  10.                               .QueryInterface(Ci.nsIDocShellTreeItem)
  11.                               .treeOwner
  12.                               .QueryInterface(Ci.nsIInterfaceRequestor)
  13.                               .getInterface(Ci.nsIBaseWindow);
  14.  
  15. var hwndString = baseWindow.nativeHandle;
  16.  
  17. Components.utils.import('resource://gre/modules/ctypes.jsm');
  18.  
  19. var user32 = ctypes.open('user32.dll');
  20.  
  21. /* http://msdn.microsoft.com/en-us/library/ms633539%28v=vs.85%29.aspx
  22.  * BOOL WINAPI SetForegroundWindow(
  23.  *   __in_ HWND hWnd
  24.  * );
  25.  */
  26. var SetForegroundWindow = user32.declare('SetForegroundWindow', ctypes.winapi_abi,
  27.     ctypes.bool, // return BOOL
  28.     ctypes.voidptr_t // HWND
  29. );
  30.  
  31. var hwnd = ctypes.voidptr_t(ctypes.UInt64(hwndString));
  32. var rez_SetForegroundWindow = SetForegroundWindow(hwnd);
  33.  
  34. console.log('rez_SetForegroundWindow:', rez_SetForegroundWindow, rez_SetForegroundWindow.toString());
  35.  
  36. user32.close();
  37. }
  38. setTimeout(function() { focus(); }, 5000);
Advertisement
Add Comment
Please, Sign In to add comment