В настоящее время я могу вставлять входы клавиатуры, когда программа не находится в фокусе с использованием этого решения.Глобальный ввод перехвата клавиатуры
Using global keyboard hook (WH_KEYBOARD_LL) in WPF/C#
Я же хочу знать, можно ли остановить другие приложения с помощью входа, если он соответствует определенным критериям, я хотел бы использовать его для захвата штрих-кодов в моей программе в то время как он работает в фон, но если вы работаете в блокноте, штрих-код, желательно, также не вводить там.
Я добавил следующее, но символы все еще добавлены в блокнот.
if (nCode >= 0)
{
if (wParam == (IntPtr)InterceptKeys.WM_KEYDOWN)
{
int vkCode = Marshal.ReadInt32(lParam);
RawKeyEventArgs rk = new RawKeyEventArgs(vkCode, false);
if (KeyDown != null)
KeyDown(this, rk);
if (rk.isHandled)
{
return (IntPtr)0;
}
}
}
return InterceptKeys.CallNextHookEx(hookId, nCode, wParam, lParam);
Является ли возвращение предполагаемым чем-то другим?
Я добавил изменения в вопрос, было ли правильное возвращение? Я проверил в отладке, и он определенно использовал return под isHandled. – JacoT
Я искал неправильное место. Надеюсь, это поможет. –
работал как шарм. – JacoT