У меня есть пульт дистанционного управления, указывающий на ПК / телевизор
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
* 1016 на пульте ДУ возникла та же проблема. Я обнаружил, что, применив следующее
System.Windows.Input.Key wpfLeftKey = Key.LeftCtrl;
var formsKey = (Forms.Keys)KeyInterop.VirtualKeyFromKey(wpfLeftKey);
Я получаю разные результаты из своего вывода
Windows 32 = LControlKey
WPF = LeftControl
Я думаю, что пульт дистанционного управления запрограммирован на отправку LControlKey
Поэтому мне нужно вызвать событие, когдаприложение Win32 записывает LControlKey и принудительно запускает событие.Какие-либо предложения.(После InitiliseComponent ()?
Я мог бы закончить проторенную дорожку здесь или мог бы быть прав. ???