2010-08-13 25 views
0

我的VB6項目需要在其MDI窗體中使用工具欄控件的鍵盤快捷鍵。爲此,我使用了vbAccelerator Keyboard Hook,在vbAccelerator Hooks(感謝Alex K對此建議)中找到vbalHook6.dll,我得到運行時錯誤'429',即ActiveX對象無法創建。我已經使用該項目引用了所需的DLL,並且還嘗試使用註冊表服務器實用程序(regsvr32)在Windows上註冊dll,但未能註冊錯誤代碼0x80004005。我看着ActiveX Can't Create Object - vbAccelerator,這具體解釋了這種類型的錯誤&其解決方案的原因,但它並沒有爲我工作。 Keyboard Hook DLL提供的項目在我的計算機上運行良好,但與我的項目無關。請幫我解決...............: - |謝謝..........無法在Windows 7中使用VB6安裝vbAccelerator鍵盤鉤子DLL

[更新]

Alex K幫助

再次,我已經成功註冊了所有必需的DLL文件....

但是,事情又上漲錯誤....

這裏是我的IWindowsHook_HookProc方法的代碼,以獲得我想在我的應用程序中作爲捷徑的組合鍵。如果任何按鍵被按下,下面的代碼有什麼問題會導致VB和我的應用程序崩潰。

我還希望在快捷方式中包含保存(Ctrl + s)和打開(Ctrl + O),我如何形成鏈式條件以識別特定的組合鍵......?

Private Function IWindowsHook_HookProc(ByVal eType As EHTHookTypeConstants, ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long, bConsume As Boolean) As Long 
If KeyboardlParam(lParam).KeyDown Then 
    Select Case True 
     Case Me.ActiveControl = Me 
      If wParam = vbKeyControl + vbKeyN Then 
       frmNewReport.show 
       bConsume = True 
      End If 
    End Select 
End If 

端功能

回答

1

它的一個UAC /權限錯誤;如果您的vista/win7右鍵單擊命令提示符圖標,請選擇「以管理員身份運行」,然後regsvr32 c:\whatever\xxxx.dll

+0

謝謝,我已經成功註冊了它。但是,掛鉤仍然無法識別我的組合鍵,我猜我的代碼不正確,並且在執行過程中按任意鍵時會導致VB6崩潰。我的原始問題中包含IWindowsHook_HookProc函數。我是高級VB編程的新手,所以幫我解決....: - |謝謝..... – Kushal 2010-08-13 17:32:25

相關問題