1
我使用Global MouseKeyHook來聽取鼠標點擊和按鍵,同時在VLC activeX控件中播放視頻。鼠標點擊偵聽器觸發很好,並按預期工作。但關鍵的按下/收聽者不會觸發。我附上了一些下面的代碼,任何幫助將不勝感激。鼠標鑰匙扣 - 鑰匙聽者沒有觸發
訂閱事件
public void playVideo(string videoPath, bool loop)
{
stopTriggered = false;
this.loop = loop;
this.videoPath = videoPath;
this.WindowState = FormWindowState.Normal;
this.BringToFront();
m_GolbalHook = Hook.GlobalEvents();
m_GolbalHook.MouseClick += m_GolbalHook_MouseClick;
m_GolbalHook.KeyDown += m_GolbalHook_KeyDown;
axVLCPlugin21.Focus();
axVLCPlugin21.playlist.items.clear();
axVLCPlugin21.playlist.add("file:///" + videoPath);
axVLCPlugin21.AutoLoop = loop;
axVLCPlugin21_Pos = ScreenPositons.Screen1_Start;
axVLCPlugin21.playlist.play();
}
事件觸發代碼
private void m_GolbalHook_KeyDown(object sender, KeyEventArgs e)
{
//Not triggering at the moment
switch (e.KeyCode)
{
case Keys.Right:
shiftRight();
break;
case Keys.Left:
shiftLeft();
break;
}
}
您是否試過'Hook.AppEvents()'而不是'Hook.GlobalEvents()'? – Kilazur
我沒有,而且那個作品,關鍵的聽衆現在開火了。但鼠標聽衆不會。我可以通過兩個鉤子,一個全球一個應用程序來解決這個問題。 感謝您的幫助!隨意添加這個作爲答案,我會標記它。否則,我會爲該問題添加詳細信息,以幫助任何有此問題的人。 – Sandwich
這看起來很奇怪,但不是那麼多......實際上,鍵盤有一個焦點,所以如果它在你的應用程序上,那麼全局鉤子可能無法獲得輸入;至於鼠標,它沒有焦點,所以應用程序鉤子在獲取輸入時會遇到困難。這只是一個瘋狂的猜測。 – Kilazur