幾天前我開始使用MouseKeyHook庫來攔截我們正在構建的應用程序(應用程序使用數字鍵盤作爲輸入來通過Akka發送特定消息等)的鍵盤按鈕。使用MouseKeyHook時KeyPress事件不會觸發
我已經設法使用控制檯應用程序很快地工作,並在那裏註冊所有內容,但是一旦我將實現移到特定服務中,它就停止工作(事件未被觸發)。
下面的代碼例如:
public class KeypadService : IKeypad
{
private readonly IKeyboardEvents _keyboardEvents;
public KeypadService()
{
_keyboardEvents = Hook.GlobalEvents();
_keyboardEvents.KeyPress += GlobalHookKeyPress;
}
public void Enable(Action<string> codeEntered)
{
}
public void Disable()
{
_keyboardEvents.KeyPress -= GlobalHookKeyPress;
}
private static void GlobalHookKeyPress(object sender, KeyPressEventArgs e)
{
// Do something
}
}
KeypadService由Autofac在應用程序開始時創建(和啓動應用程序是一個控制檯應用程序)。
builder.RegisterType<KeypadService>().As<IKeypad>().SingleInstance();
正在命中構造函數,並且所有內容都在構造函數中執行。
任何線索爲什麼它可能不會被解僱?任何幫助表示讚賞!
你試圖從窗口服務掛鉤鍵盤?是對的嗎? –