Imports System.Runtime.InteropServices Public Class Form1 <DllImport("user32.dll", CharSet:=CharSet.Auto, ExactSpelling:=True)> _ Public Shared Function GetAsyncKeyState(ByVal virtualKeyCode As Integer) As Short End Function Private Declare Auto Function GetForegroundWindow Lib "user32.dll" () As IntPtr Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Timer1.Interval = 1000 Timer1.Start() End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Dim x As Keys For x = 0 To 226 If GetAsyncKeyState(x) <> 0 Then 'touche F4 (mettre un point d'arrêt pour connaître les numéros des touches) If x = 115 Then 'place le contenu du textbox dans le presse-papier Clipboard.SetText(TextBox1.Text) 'handle process actif Dim HandleActif As IntPtr = GetForegroundWindow() 'on énumère les processus For Each p As Process In Process.GetProcesses 'si le process correspont If p.MainWindowHandle.Equals(HandleActif) Then 'on l'active quand même AppActivate(p.Id) 'on envoie la combinaison de touches SendKeys.Send("^V") End If Next End If End If Next End Sub End Class
If m.WParam = HOTKEY_ID1 Then 'on cherche quelle hotkey a déclenché l'évènement Clipboard.SetDataObject(TextBox1.Text, True) MsgBox(Clipboard.GetText) SendKeys.Send(Clipboard.GetText) Clipboard.GetText()
'place le contenu du textbox dans le presse-papier Clipboard.SetText(TextBox1.Text) 'on cherche le process "notepad" For Each p As Process In Process.GetProcessesByName("notepad") 'on l'active AppActivate(p.Id) 'on envoie la combinaison de touches SendKeys.Send("^V") Next
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionPublic Class Form1 Private Declare Auto Function GetForegroundWindow Lib "user32.dll" () As IntPtr Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'place le contenu du textbox dans le presse-papier Clipboard.SetText(TextBox1.Text) 'handle process actif Dim HandleActif As IntPtr = GetForegroundWindow() 'on énumère les processus For Each p As Process In Process.GetProcesses 'si le process correspont If p.MainWindowHandle.Equals(HandleActif) Then 'on l'active quand même AppActivate(p.Id) 'on envoie la combinaison de touches SendKeys.Send("^V") End If Next End Sub End Class
Private Declare Auto Function GetForegroundWindow Lib "user32.dll" () As IntPtr Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message) Select Case m.Msg 'on va tester le message reçu à chaque appel de cette fonction Case WM_HOTKEY 'si il s'agit du message WM_HOTKEY (si l'utilisateur a appuyé sur Alt+F1) If m.WParam = HOTKEY_ID1 Then 'on cherche quelle hotkey a déclenché l'évènement 'place le contenu du textbox dans le presse-papier Clipboard.SetText(TextBox1.Text) 'handle process actif Dim HandleActif As IntPtr = GetForegroundWindow() 'on énumère les processus For Each p As Process In Process.GetProcesses 'si le process correspont If p.MainWindowHandle.Equals(HandleActif) Then 'on l'active quand même AppActivate(p.Id) 'on envoie la combinaison de touches SendKeys.Send("^V") End If Next