/// <summary> /// コンストラクタ。 /// </summary> public TrayComponent() { // notifyIcon settings. this.ContextMenu = new MainContextMenu(); //this.keyboardHook1 = new KeyboardHook(); this.TrayMouseDoubleClick += (_o, _e) => { var main = ((App)System.Windows.Application.Current).main; // オプション画面の表示/非表示を変更 if (main.optionWindow.IsVisible) { main.optionWindow.Hide(); } else { main.optionWindow.Show(); main.optionWindow.Activate(); // ダブルクリックするとTrayにFocusを持ってかれるので、窓にFocusを再度与える(強制) } }; viewmodel.SetBinding(this); // Keyboardのフック処理 KeyboardHooker = new KeyboardHookComponent(); }
public KeyboardHookCommand(VolumeWatcherMain main) { this.main = main; this.KeyboardHooker = main.trayComponent.KeyboardHooker; var dict = new Dictionary <System.Windows.Input.Key, Action>() { { Key.OemComma, () => { // 音量- var device = main.VolumeMonitor1.AudioDevice; if (device == null || device.AudioEndpointVolume == null) { return; } device.AudioEndpointVolume.MasterVolumeLevelScalar -= Step; } }, { Key.OemPeriod, () => { // 音量+ var device = main.VolumeMonitor1.AudioDevice; if (device == null || device.AudioEndpointVolume == null) { return; } device.AudioEndpointVolume.MasterVolumeLevelScalar += Step; } }, { Key.M, () => { // Mute var device = main.VolumeMonitor1.AudioDevice; if (device == null || device.AudioEndpointVolume == null) { return; } device.AudioEndpointVolume.Mute = !device.AudioEndpointVolume.Mute; } }, { Key.K, () => { // 音量- var device = main.CaptureMonitor.AudioDevice; if (device == null || device.AudioEndpointVolume == null) { return; } device.AudioEndpointVolume.MasterVolumeLevelScalar -= Step; } }, { Key.L, () => { // 音量+ var device = main.CaptureMonitor.AudioDevice; if (device == null || device.AudioEndpointVolume == null) { return; } device.AudioEndpointVolume.MasterVolumeLevelScalar += Step; } }, { Key.J, () => { // Mute var device = main.CaptureMonitor.AudioDevice; if (device == null || device.AudioEndpointVolume == null) { return; } device.AudioEndpointVolume.Mute = !device.AudioEndpointVolume.Mute; } } }; foreach (var key in dict.Keys) { KeyboardHooker.AddShortcut(KeyboardHookComponent.GetMixedKeyFromKey(key, false, false, true), dict[key]); } }