Я делаю программу, в которой мне нужно установить несколько горячих клавиш, которые может нажимать пользователь. Я объявил горячие клавиши следующим образом:
Dim index1 As Integer = 0
Dim hotkeycounter as integer= 0
For index0 = 0 To mainArr.GetUpperBound(0)
For index1 = 0 To mainArr.GetUpperBound(1)
If mainArr(index0, index1) = "" Then
MsgBox("exited the unregisterhotkey for loop")
GoTo line1
End If
UnregisterHotKey(Me.Handle, hotkeycounter)
hotkeycounter = hotkeycounter + 1
Next
Next
line1:
hotkeycounter = 0
For index0 = 0 To mainArr.GetUpperBound(0)
For index1 = 0 To index1 = 1
If mainArr(index0, index1) = "" Then
MsgBox("exited the registerhotkey for loop")
GoTo line2
End If
RegisterHotKey(Me.Handle, hotkeycounter, &H1, index0)
hotkeycounter = hotkeycounter + 1
MsgBox("A hotkey has been registered")
MsgBox(($"{mainArr(index0, index1)} "))
Next
Next
line2:
Таким образом, в основном значения команд для горячей клавиши считываются из массива. Моя проблема в том, что я не могу определить, какой массив нажат (определяется «счетчиком горячих клавиш»). Мой код, чтобы попытаться определить, какая горячая клавиша нажата:
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
Dim specialcharacter As String
If m.Msg = WM_HOTKEY Then
If commandID = 0 Then
MsgBox("You pressed the first key combination")
ElseIf commandID = 1 Then
MsgBox("You pressed the second key combination")
ElseIf commandID = 2 Then
MsgBox("you pressed the third key combination")
End If
End If
MyBase.WndProc(m)
End Sub
WParam
иLParam
изMessage
, чтобы определить, какая клавиша и модификаторы были нажаты. См. эту тему. - person jmcilhinney   schedule 23.06.2018RegisterHotKey
? Это та часть, которая должна вас сейчас заинтересовать: Возвращаемое значение Тип: BOOL Если функция завершается успешно, возвращаемое значение не равно нулю. Если функция завершается ошибкой, возвращаемое значение равно нулю. Чтобы получить расширенную информацию об ошибке, вызовите GetLastError. Функция сообщит вам, успешно она или нет, и вы игнорируете эту информацию. - person jmcilhinney   schedule 23.06.2018