public void InstallWindowsHook() { if (hHook == 0) { // Create an instance of HookProc. MouseHookProcedure = new Win32.USER32.HookProc(WindowHookProc); hHook = Win32.USER32.SetWindowsHookEx(Win32.USER32.WH_CALLWNDPROC, MouseHookProcedure, (IntPtr)0, AppDomain.GetCurrentThreadId()); //If SetWindowsHookEx fails. if (hHook == 0) { MeetingAlerts alert = new MeetingAlerts(); alert.ShowMessage(Alerts.MeetingAlerts.AlertType.Warning, "SetWindowsHookEx Failed", true, false); // MessageBox.Show("SetWindowsHookEx Failed"); return; } } else { bool ret = Win32.USER32.UnhookWindowsHookEx(hHook); //If UnhookWindowsHookEx fails. if (ret == false) { MeetingAlerts alert = new MeetingAlerts(); alert.ShowMessage(Alerts.MeetingAlerts.AlertType.Warning, "UnhookWindowsHookEx Failed", true, false); //MessageBox.Show("UnhookWindowsHookEx Failed"); return; } hHook = 0; } }
/// <summary> /// Call this function to save current page - after page is loaded complete /// </summary> /// <returns>true if successful</returns> public bool SaveAs() { if (0 == pathFile.Length) { pathFile = "untitled"; } // TODO check path file. If file exists, IE prompts again... if (null == webBrowser) { return(false); } if (0 != hook) { return(false); } HookProcedure = new Win32.USER32.HookProc(SaveAsHookProc); // prepare SaveAs dialog hook hook = Win32.USER32.SetWindowsHookEx(5 /*WH_CBT*/, HookProcedure, (IntPtr)0, AppDomain.GetCurrentThreadId()); if (0 == hook) { return(false); } // this will show the dialog saveaswebbrowser = this; object o = null; string str = ""; o = (object)str; // remove hook //webBrowser.Navigate2("http://www.compassnav.com",) try { webBrowser.ExecWB(SHDocVw.OLECMDID.OLECMDID_SAVEAS, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER, ref o, ref o); } catch (Exception exp) { exp.StackTrace.ToString(); } Win32.USER32.UnhookWindowsHookEx(hook); saveaswebbrowser = null; hook = 0; return(true); }
/// <summary> /// Call this function to save current page - after page is loaded complete /// </summary> /// <returns>true if successful</returns> public bool SaveAs() { if (0==pathFile.Length) pathFile = "untitled"; // TODO check path file. If file exists, IE prompts again... if (null==webBrowser) return false; if (0!=hook) return false; HookProcedure = new Win32.USER32.HookProc(SaveAsHookProc); // prepare SaveAs dialog hook hook = Win32.USER32.SetWindowsHookEx(5 /*WH_CBT*/, HookProcedure, (IntPtr) 0, AppDomain.GetCurrentThreadId()); if (0==hook) return false; // this will show the dialog saveaswebbrowser = this; object o = null; string str=""; o=(object)str; // remove hook //webBrowser.Navigate2("http://www.compassnav.com",) try { webBrowser.ExecWB(SHDocVw.OLECMDID.OLECMDID_SAVEAS, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER, ref o, ref o); } catch(Exception exp){exp.StackTrace.ToString();} Win32.USER32.UnhookWindowsHookEx(hook); saveaswebbrowser = null; hook = 0; return true; }
public void InstallWindowsHook() { if(hHook == 0) { // Create an instance of HookProc. MouseHookProcedure = new Win32.USER32.HookProc(WindowHookProc); hHook = Win32.USER32.SetWindowsHookEx(Win32.USER32.WH_CALLWNDPROC, MouseHookProcedure, (IntPtr)0, AppDomain.GetCurrentThreadId()); //If SetWindowsHookEx fails. if(hHook == 0 ) { MeetingAlerts alert=new MeetingAlerts(); alert.ShowMessage(Alerts.MeetingAlerts.AlertType.Warning,"SetWindowsHookEx Failed",true,false); // MessageBox.Show("SetWindowsHookEx Failed"); return; } } else { bool ret = Win32.USER32.UnhookWindowsHookEx(hHook); //If UnhookWindowsHookEx fails. if(ret == false ) { MeetingAlerts alert=new MeetingAlerts(); alert.ShowMessage(Alerts.MeetingAlerts.AlertType.Warning,"UnhookWindowsHookEx Failed",true,false); //MessageBox.Show("UnhookWindowsHookEx Failed"); return; } hHook = 0; } }