PDA

View Full Version : آموزش: گذاشتن hotkey روی فرم vb



ahmad009
یک شنبه 21 مهر 1392, 09:49 صبح
سلام به همگی
کد کاملش این هست:
Public Class Form1
Private Declare Function RegisterHotKey Lib "user32" (ByVal hWnd As IntPtr, ByVal id As Integer, ByVal fsModifier As Integer, ByVal vk As Integer) As Integer
Private Declare Sub UnregisterHotKey Lib "user32" (ByVal hWnd As IntPtr, ByVal id As Integer)
Private Const Key_NONE As Integer = &H0
Private Const WM_HOTKEY As Integer = &H312
Private Const MOD_ALT As Integer = &H1
Private Const MOD_CONTROL As Integer = &H2
Private Const MOD_SHIFT As Integer = &H4
Private Const MOD_WIN As Integer = &H80

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
RegisterHotKey(Me.Handle, 1, Key_NONE, "هر کلیدی میتونه باشه")
End Sub
Protected Overrides Sub WndProc(ByRef m As Message)
If m.Msg = WM_HOTKEY Then
MsgBox("Hello World!")
End If
MyBase.WndProc(m)
End Sub
End Class
به جای MsgBox("Hello World!") هر چیزی که بخواید میتونید بذارید.

برای اینکه کلید ها رو تغییر بدید باید در قسمت Private Sub Form1_Load اسم کلیدی رو که میخواید رو فرمتون قرار بدید رو میذارید.
برای یک کلید مثلا کلید insert :
RegisterHotKey(Me.Handle, 1, Key_NONE, Keys.insert)
برای کلید های ترکیبی مثلا کلید ctrl+f1:
RegisterHotKey(Me.Handle, 1, MOD_CONTROL, Keys.F1)

برای کلید shift :
MOD_SHIFT

برای کلید alt :
MOD_alt

برای کلید win :
MOD_win

و ..........

من تازه کارم و یک ماهه که برنامه نویسی رو شروع کردم اگه این آموزش مشکلی داشت بگین تا کاملش کنم.
اگه مشکلی بود بگید تا آموزش تصویری بذارم.
تشکر یادتون نره.

biyarjomandi
یک شنبه 21 مهر 1392, 11:16 صبح
سلام ممنون از زحماتت شما با استفاده از API این کارو کردید ولی راه های ساده تری هم هست که سعی میکنم در فرصت آینده نمونه کدهای ساده تر رومی زارم برات . ایونت keypress به سادگی این کار رو انجام میده .

ahmad009
یک شنبه 21 مهر 1392, 13:57 عصر
ممنون. من چیز زیادی بلد نیستم ولی هرچی بلد باشم از دیگران دریغ نمیکنم.