解決在Windows 7/Vista上跑.NET 1.1/1.0 程式按功能鍵:出現「無法出現攔截Hook」錯誤

  • 3051
  • 0
  • 2014-10-29

解決在Windows 7/Vista上跑.NET 1.1/1.0 程式按功能鍵:出現「無法出現攔截Hook」錯誤

當你在Win Vista/7上跑舊版的.NET 1.0 或 1.1 的Windows form程式,當按下function鍵時,出現錯誤「無法出現攔截Hook」,如下視窗:

image

問題是出在System.Windows.Forms.SendKeys.Send 方法,SendKeys 類別預設會嘗試使用全域日誌攔截程序。在UAC 服務已啟動時,這個攔截程序就沒有登入 Windows Vista/7 的權限。

解決之道:

  1. 關掉UAC,適用.NET1.0/1.1,操作如下:

    【控制台】→【使用者帳戶和家庭】→【使用者帳號】→【變更使用者帳號控制設定】

    image

    設定到【不要通知】,按【確定】,就完成了。

  2. 套用GDR,適用.NET 1.1
    立即下載 KB925168 套件。
    這個 GDR 會更新 .NET Framework 1.1。套用後,.NET Framework 1.1 會改為呼叫 User32 SendInput API,而不會建立全域日誌攔截程序。

參考:

KB925168