2010-05-07 77 views

回答

0

我假设你正在使用的P/Invoke调用RegisterHotKey。如果是这样,你的声明应该如下所示。

<DllImport("user32.dll", SetLastError:=True)> _ 
    Private Shared Function RegisterHotKey(ByVal hWnd As IntPtr, ByVal id As Int32, ByVal fsModifier As UInt32, ByVal vk As UInt32) As <MarshalAs(UnmanagedType.Bool)> Boolean 
    End Function 

有了这个,你可以检查RegisterHotKey的返回值,如果是假的,你可以使用Marshal.GetLastError来获得Win32错误代码提供为调用失败的原因的详细信息。

+0

经过一番搜索后,我发现只要使用RegisterHotKey就会给你一个1或0的返回值,而不管是否使用热键。尝试使用msgbox例如 msgbox(RegisterHotKey(Me.Handle,1020,MOD_ALT,Keys.W))'Alt + W – jameslcs 2010-05-10 17:43:59