У меня есть пульт дистанционного управления, направленный на ПК / телевизор
CTRL+P на клавиатуре работает и Воспроизведение/Пауза внутри приложения.
Пульт дистанционного управления может воспроизводить/приостанавливать воспроизведение в медиаплеере, но не работает в приложении WPF.
public MainWindow()
{
InitializeComponent();
ModifierKeys mk = ((ModifierKeys)(ModifierKeys.Control | ModifierKeys.Shift));
MyPlayPause.InputGestures.Add(new KeyGesture(Key.P, ModifierKeys.Control));
MyStop.InputGestures.Add(new KeyGesture(Key.S, ModifierKeys.Control));
MyRewind.InputGestures.Add(new KeyGesture(Key.B,mk));
MyFastForward.InputGestures.Add(new KeyGesture(Key.F,mk));
}
Мой XAML
<Window.CommandBindings>
<CommandBinding Command="{x:Static RemoteControlTest:MainWindow.MyPlayPause}" Executed="MyPlayPauseEvent"/>
<CommandBinding Command="{x:Static RemoteControlTest:MainWindow.MyStop}" Executed="MyStopEvent"/>
<CommandBinding Command="{x:Static RemoteControlTest:MainWindow.MyFastForward}" Executed="MyFastForwardEvent" />
<CommandBinding Command="{x:Static RemoteControlTest:MainWindow.MyRewind}" Executed="MyRewindEvent" />
</Window.CommandBindings>
События работают для перемотки назад и вперед, но не для воспроизведения/паузы и остановки.
Я попытался загрузить Media Glass http://mediaglass.codeplex.com/, и на удаленном компьютере возникла та же проблема. при нажатии CTRL+P
Я узнал, что, применив следующее
System.Windows.Input.Key wpfLeftKey = Key.LeftCtrl;
var formsKey = (Forms.Keys)KeyInterop.VirtualKeyFromKey(wpfLeftKey);
Я получаю разные результаты от моего вывода
Windows 32 = LControlKey
WPF = LeftControl
Я думаю, что пульт дистанционного управления запрограммирован на отправку LControlKey.
Поэтому мне нужно создать событие, когда приложение Win32 записывает LControlKey, и принудительно запустить событие. Какие-либо предложения. (После инициализации компонента ()?
Я мог бы быть полностью проторенным здесь, или мог бы быть прав. ???