求教:VB6.0中的Me.hwnd在VS2010里怎么实现?
如题
刚开始接触编程,什么都不懂,还请多多指教。
要求,或者说目的:
要给程序的“开始”按钮注册一个全局热键,我在网上找到一个别人写的类,但他是用6.0写的,其中一个命令要用到程序自身的句柄,在VB6.0里可以用Me.HWnd直接获取到,可在VS2010里这条命令没有了。
求教:
在VS2010中ME.HWND语句的替代语句是什么?或者如何在VS2010中达到所要的目的?麻烦哪位大侠能伸下援手告诉我下呗!
因为代码太长,不能发上来,也不记得是在哪里下载的了,就发一下它的版本说明吧,在网上搜一下应该能搜到。
'*************************************************************************
'**模 块 名:cHotKey
'**说 明:全局热键类,参考老外代码思路,添加了热键管理代码,使之更方便使用.
'**创 建 人:嗷嗷叫的老马
'**日 期:2006年07月19日
'**备 注: 紫水晶工作室 版权所有
'** 更多模块/类模块请访问我站: http://www.m5home.com
'**日 期: 2008年09月30日
'**修 改 人: 嗷嗷叫的老马
'**备 注: 修正清除所有热键时的一个逻辑错误.
'**版 本:V1.0
'*************************************************************************
[解决办法]
Me.Handle.ToInt32
[解决办法]
vb.net 通过
Public Declare Auto Function RegisterHotKey Lib "user32.dll" Alias _
"RegisterHotKey" (ByVal hwnd As IntPtr, ByVal id As Integer, ByVal fsModifiers As Integer, ByVal vk As Integer) As Boolean
Public Declare Auto Function UnRegisterHotKey Lib "user32.dll" Alias _
"UnregisterHotKey" (ByVal hwnd As IntPtr, ByVal id As Integer) As Boolean
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'注册全局热键
'RegisterHotKey(Handle, 0, MOD_CONTROL, Asc("T")) ' Ctrl+T
RegisterHotKey(Handle, 0, Nothing, Keys.Add) '热键 +
End Sub
Private Sub Form1_FormClosed(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles MyBase.FormClosed
'注销全局热键
UnRegisterHotKey(Handle, 0)
If SerialPort1.IsOpen Then
SerialPort1.Close()
End If
'UnRegisterHotKey(Handle, 1)
End Sub
Protected Overrides Sub WndProc(ByRef m As Message)
If m.Msg = WM_HOTKEY Then
'MsgBox("在这里添加你要执行的代码", MsgBoxStyle.Information, "全局热键")
End If
MyBase.WndProc(m)
End Sub