private void button1_Click(object sender, EventArgs e) { button1.Enabled = button2.Enabled = false; pressDelay = new BinaryWriter(File.Open("pressDelay", FileMode.Append, FileAccess.Write, FileShare.None)); nextKeyDelay = new BinaryWriter(File.Open("nextKeyDelay", FileMode.Append, FileAccess.Write, FileShare.None)); Hooker.s_KeyDown += _keyDown; Hooker.s_KeyUp += _keyUp; Hooker.HookKeyboard(); hooked = true; }
private void frmMain_Load(object sender, EventArgs e) { LoadAllSettings(); //settings only. validCondition = (newName) => { return(!_macroPages.Any((page) => page.name.Equals(newName))); }; _macroPages = new List <MacroPage>(); _macroPages.Add(new MacroPage("Default", new List <Macro>())); LoadMacros(); CompileAll(); DisplayCurrentMacroPage(); UpdateOSD(_macroPages[0].name, 0); if (settings._opOSDEnable) { ShowOSD(); } _frmOsd.FollowTarget = settings._opOSDTarget; SetOSDLocked(settings._opOSDLock); WindowMonitor.BeginMonitorForeground(); //trayIcon.ShowBalloonTip(3000, "KeyReplace", "KeyReplace is now running.", ToolTipIcon.Info); t = new Thread((ThreadStart) delegate { Hooker.s_KeyDown += _keyDown; Hooker.s_KeyUp += _keyUp; Hooker.HookKeyboard(); Application.Run(); }); //we run the keyboard thread on a seperate thread with a message loop // courtesy: https://stackoverflow.com/questions/25502960/install-low-level-mouse-hook-in-different-thread t.Start(); Hooker.s_MouseDown += _mouseDown; Hooker.s_MouseUp += _mouseUp; Hooker.HookMouse(); hooked = true; }