private static void CallEvent( EventHandler<GlobalKeyEventArgs> event_handler, GlobalKeyEventArgs event_args) { if (event_handler != null) event_handler(null, event_args); }
private void GlobalKeybordMonitor_KeyUp(object sender, GlobalKeyEventArgs e) { mPressedKeys.Remove(e.KeyData); /* if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs("PressedKeys")); */ }
private static IntPtr HookProc(int nCode, IntPtr wParam, ref KBDLLHOOKSTRUCT lParam) { bool handled = false; if (nCode == HC_ACTION) { GlobalKeyEventArgs event_args = new GlobalKeyEventArgs(lParam); switch (wParam.ToInt32()) { case WM_KEYDOWN: case WM_SYSKEYDOWN: CallEvent(KeyDown, event_args); break; case WM_KEYUP: case WM_SYSKEYUP: CallEvent(KeyUp, event_args); break; } handled = event_args.Handled; } return handled ? (IntPtr) 1 : CallNextHookEx(HookHandle, nCode, wParam, ref lParam); }
private void GlobalKeybordMonitor_KeyDown(object sender, GlobalKeyEventArgs e) { if (mPressedKeys.Contains(e.KeyData)) return; var k = e.KeyData.ToString().ToLower(); #region Windows 8 用のおまけ機能 if (e.KeyData == Key.O && mPressedKeys.Contains(Key.LWin)) { var rect = System.Windows.Forms.Screen.PrimaryScreen.Bounds; System.Drawing.Image image = new System.Drawing.Bitmap(rect.Width, rect.Height, PixelFormat.Format32bppArgb); using (var g = System.Drawing.Graphics.FromImage(image)) { g.CopyFromScreen(rect.X, rect.Y, 0, 0, rect.Size, CopyPixelOperation.SourceCopy); } image.Save(GetFileNameToSave(save_dir, prefix, extension), ImageFormat.Png); k = "SnapShot".ToLower(); e.Handled = true; } #endregion if (!MuteEnabled) { if (mSounds.Keys.Contains(k)) mSounds[k].Play(); else if (DefaultSoundEnabled && mSounds.Keys.Contains("default")) mSounds["default"].Play(); } mPressedKeys.Add(e.KeyData); if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs("PressedKeys")); }