0

もう一度、私は助けを求めます!

非表示のフォームから実行される複数のホットキーを登録できるようにしたいと考えています。以下のプログラム例のホットキーは、ALT+UPKEY が押されたときに 2 番目のフォームを切り替えます。現在は正常に動作しますが、プログラムを非表示にするコードのコメントを外すと、ホットキーが機能しなくなります。これでどこが間違っているのか、または非表示のプログラムから2番目のフォームを切り替える方法を知っている人はいますか? いつもお世話になっております。

Public Class Form1

Public Declare Function RegisterHotKey Lib "user32" (ByVal hwnd As IntPtr, ByVal id As Integer, ByVal fsModifiers As Integer, ByVal vk As Integer) As Integer
Public Declare Function UnregisterHotKey Lib "user32" (ByVal hwnd As IntPtr, ByVal id As Integer) As Integer
Public Const WM_HOTKEY As Integer = &H312

Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
    If m.Msg = WM_HOTKEY Then
        Form2.Show()
    End If

    MyBase.WndProc(m)

End Sub


Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    Call UnregisterHotKey(Me.Handle, 9)

End Sub


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Call RegisterHotKey(Me.Handle.ToInt32, 0, &H1, 38) '<-- registers specific hotkeys

    'Me.KeyPreview = True
    'Me.ShowInTaskbar = False
    'Me.ShowIcon = False
    'Me.Visible = False

End Sub
End Class
4

0 に答える 0