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
Créer un fichier PDF de la contribution Imprimer


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
_________________
[ Totof(Christophe LOGEL) réalise des développements spécifiques WinDev (Mon annonce wdforge), http://www.sigmasys.fr]
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
_________________
[ Totof(Christophe LOGEL) réalise des développements spécifiques WinDev (Mon annonce wdforge), http://www.sigmasys.fr]
Créer un fichier PDF de la contribution Imprimer


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
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


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.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2