2013-07-24 26 views
5

In meinem Programm möchte ich das Drücken der MediaPlayPause Taste simulieren. Nur als Hinweis möchte ich nicht überprüfen, ob die Taste gedrückt oder gedrückt ist. Ich möchte die Taste über mein Programm drücken.VB Simulieren Sie einen Tastendruck

Ich habe versucht, SendKeys.Send aber die Sondertasten sind auf {Enter} und {Tab} usw.

+0

Sie müssen Winapi verwenden, um dies zu tun, soweit ich weiß. – Gray

+1

Könnten Sie das näher erläutern? – jgetrost

+0

Ich gehe davon aus, dass dies für ein Winforms-Projekt ist? – JBelter

Antwort

3

Ok, ich portierte das C# -Code aus dieser Antwort: https://stackoverflow.com/a/7182076/2000557

Ich weiß nicht, VB. Net, aber es war nicht zu schwer zu kopieren mit dieser Anleitung: http://msdn.microsoft.com/en-us/library/172wfck9.aspx

Wie auch immer, ich legte einen Knopf auf das Formular mit einem Klick-Ereignis.

Imports System.Runtime.InteropServices 

Public Class Form1 

    'this constant represents the hex value for the key to send to user32.dll 
    Const APPCOMMAND_MEDIA_PLAY_PAUSE = &HE0000 
    'this constant represents which command. Sort of like the function in user32.dll we are calling. 
    Const WM_APPCOMMAND = &H319 

    'this declares the user32.dll call to SendMessageW we are making 
    Declare Auto Function SendMessageW Lib "user32.dll" Alias "SendMessageW" (
    ByVal hWnd As Integer, 
    ByVal Msg As Integer, 
    ByVal wParam As Integer, 
    ByVal lParam As Integer) As Integer 

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
     'call the SendMessage function with the current window handle, the command we want to use, same handle, and the button we want to press 
     SendMessageW(Handle, WM_APPCOMMAND, Handle, APPCOMMAND_MEDIA_PLAY_PAUSE) 
    End Sub 
End Class 

Getestet habe ich es durch wmplayer öffnen und die Taste Wiedergabe/Pause der Musik, die ich hatte. Lassen Sie es mich wissen, wenn Sie weitere Hilfe benötigen. Hier ist eine Referenz, wenn Sie andere Schlüssel implementieren möchten: http://msdn.microsoft.com/en-us/library/windows/desktop/ms646275(v=vs.85).aspx

+0

Danke, das funktioniert perfekt! Ich werde dir sicher für die Hilfe danken. – jgetrost

+0

Haha, danke. Ich habe mein Bestes getan, um ein paar Kommentare hinzuzufügen, um es hoffentlich etwas aufzuräumen, damit es nicht wie Magie aussieht. – Gray

+0

Versuchen Sie dies, KeyPress-Ereignis in einem Textfeld zu simulieren –

Verwandte Themen