|
Envoietouche |
|
Developpeur WDF
Inscrit: 02/05/2003 09:10
Post(s): 103
|
Bonjour,
JE dois juste faire un CTRL + C puis un CTRL + SHIFT + C pour travailler avec un autre programme qui apparament a un evenement sur ces touches.
j'ai utilisé ce code :
EnvoieTouche("^c") EnvoieTouche("^+c")
Mais ce programme ne démarre pas Or quand je tappe ces touches au clavier avec mes petits doigts, ca fonctionne...
Auriez-vous une idée ??? (API windows ptet?) Merci
Contribution le : 25/10/2006 16:42
|
|
|
Re: Envoietouche |
|
Animateur WDF
Inscrit: 19/01/2004 13:48
De www.sigmasys.fr
Post(s): 988
|
Bonjour,
Pour pouvoir utiliser envoieTouche, il faut que le programme sur lequel on veut envoyer des touches ait le focus.
Bon dév.,
Totof
Contribution le : 26/10/2006 11:17
|
|
|
Re: Envoietouche |
|
Developpeur WDF
Inscrit: 02/05/2003 09:10
Post(s): 103
|
Donc, cette fonction ne simule pas les touches du clavier comme si on le tappais car quand je le fais a la main, ca fonctionne malgrès que le logiciel en question n'aie pas le focus. Est-ce juste ?
Contribution le : 26/10/2006 12:13
|
|
|
Re: Envoietouche |
|
Animateur WDF
Inscrit: 19/01/2004 13:48
De www.sigmasys.fr
Post(s): 988
|
Bonjour,
Oui, c'est exact. Via les API, il existe d'autres fonctions mais je ne connais plus leurs noms.
Bon dév.,
Totof
Contribution le : 26/10/2006 14:23
|
|
|
Re: Envoietouche |
|
Animateur WDF
Inscrit: 02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
|
Bonjour,
Il sagit de la fonction 'SendInput' de la librairie 'user32.dll'
Contribution le : 27/10/2006 10:32
|
|
|
Re: Envoietouche |
|
Developpeur WDF
Inscrit: 02/05/2003 09:10
Post(s): 103
|
Ok, merci, je vais essayer
Contribution le : 30/10/2006 11:05
|
|
|
Re: Envoietouche |
|
Developpeur WDF
Inscrit: 02/05/2003 09:10
Post(s): 103
|
Désolé pour mon ignorance, mais pour un CTRL + C ce serait ceci ? --> EcranPremier(Saisie1) tb est un tableau de 2 entier tb[1] = 0x11 tb[2] = 0x43
API("USER32","SendInput",2,&tb,2) PS : ca ne fonctionne pas évidement :D
Contribution le : 30/10/2006 16:09
|
|
|
Re: Envoietouche |
|
Animateur WDF
Inscrit: 02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
|
Bonjour, Ci joint un exemple en VB avec les structures qui vont bien Ce code reste bien sur à traduire
Const VK_H = 72
Const VK_E = 69
Const VK_L = 76
Const VK_O = 79
Const KEYEVENTF_KEYUP = &H2
Const INPUT_MOUSE = 0
Const INPUT_KEYBOARD = 1
Const INPUT_HARDWARE = 2
Private Type MOUSEINPUT
dx As Long
dy As Long
mouseData As Long
dwFlags As Long
time As Long
dwExtraInfo As Long
End Type
Private Type KEYBDINPUT
wVk As Integer
wScan As Integer
dwFlags As Long
time As Long
dwExtraInfo As Long
End Type
Private Type HARDWAREINPUT
uMsg As Long
wParamL As Integer
wParamH As Integer
End Type
Private Type GENERALINPUT
dwType As Long
xi(0 To 23) As Byte
End Type
Private Declare Function SendInput Lib "user32.dll" (ByVal nInputs As Long, pInputs As GENERALINPUT, ByVal cbSize As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)
Private Sub Form_KeyPress(KeyAscii As Integer)
'Print the key on the form
Me.Print Chr$(KeyAscii);
End Sub
Private Sub Form_Paint()
'KPD-Team 2000
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
'Clear the form
Me.Cls
'call the SendKey-function
SendKey VK_H
SendKey VK_E
SendKey VK_L
SendKey VK_L
SendKey VK_O
End Sub
Private Sub SendKey(bKey As Byte)
Dim GInput(0 To 1) As GENERALINPUT
Dim KInput As KEYBDINPUT
KInput.wVk = bKey 'the key we're going to press
KInput.dwFlags = 0 'press the key
'copy the structure into the input array's buffer.
GInput(0).dwType = INPUT_KEYBOARD ' keyboard input
CopyMemory GInput(0).xi(0), KInput, Len(KInput)
'do the same as above, but for releasing the key
KInput.wVk = bKey ' the key we're going to realease
KInput.dwFlags = KEYEVENTF_KEYUP ' release the key
GInput(1).dwType = INPUT_KEYBOARD ' keyboard input
CopyMemory GInput(1).xi(0), KInput, Len(KInput)
'send the input now
Call SendInput(2, GInput(0), Len(GInput(0)))
End Sub
Contribution le : 31/10/2006 14:57
|
|
|
Re: Envoietouche |
|
ChefDeProjet WDF
Inscrit: 02/05/2006 21:28
Post(s): 160
|
envoietouche() fonctionne avec le handle de la fenêtre destinatrice
hd est un entier hd=sysfenhandle(nomdelafenêtre) ex: "Assistant Graver un CD": c'est le titre de la fenêtre de l'assistant gravure windows
envoietouche(touche,hd) selon le cas place un multitache()
Contribution le : 01/11/2006 15:58
|
|
|
Re: Envoietouche |
|
Developpeur WDF
Inscrit: 02/05/2003 09:10
Post(s): 103
|
Désolé, mais je n'y arrive pas... Je dois faire un CTRL+C et un CTRL+SHIFT+C en utilisant les API Windows...
Si qq sait me dépanner, je l'en remercie...
Contribution le : 06/11/2006 11:40
|
|
|
Re: Envoietouche |
|
Animateur WDF
Inscrit: 22/11/2004 11:23
Post(s): 255
|
Merci de vous référer au message de Dr Charly pour vous mettre sur la piste
Cordialement
Contribution le : 06/11/2006 11:49
|
|
|
Re: Envoietouche |
|
Developpeur WDF
Inscrit: 02/05/2003 09:10
Post(s): 103
|
j'ai bien essayé... seulement, je n'arrive pas a utiliser cette Fonction dans user32 enfin.. mes parametres ne sont pas corrects comme dit dans mon message précédant. Vous voyez qqchose qui ne fonctionne pas dans mon code ?
-------------
Désolé pour mon ignorance, mais pour un CTRL + C ce serait ceci ? --> EcranPremier(Saisie1) tb est un tableau de 2 entier tb[1] = 0x11 tb[2] = 0x43
API("USER32","SendInput",2,&tb,2) PS : ca ne fonctionne pas évidement :D
Contribution le : 06/11/2006 11:53
|
|
Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.
|
Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
|