Hit-Parade .VB Research Center . Compteur
Accueil ~  Code ~  Programmes ~  Api ~  Forum ~  Cours ~  Livres ~  Quiz ~  Annuaire
~ Edito ~
12/03/2006 @ 13:39
Depuis la dernière mise à jour (qui remonte à... oulala plusieurs mois), un petit ménage de printemps s'impose. Ca tombe bien, c'est presque la période.
Au menu, et progressivement sur les jours à venir, rafraîchissement de plusieurs fonctions et procédures, nouvelles APIs et nouveaux programmes.

~ Rechercher ~

  

~ Annuaire VB ~
 Rechercher un site :
  

~ Partenaires ~

Fonction keybd_event

Declare Sub keybd_event Lib "user32" Alias "keybd_event" ( _
                 
ByVal bVk As Byte, _
                 ByVal bScan As Byte, _
                 ByVal dwFlags As Long, _
                 ByVal dwExtraInfo As Long)
Versions :
. Windows 95/98 : Oui
. Windows NT : A partir de 3.1
. Windows 2000/XP : Oui

Description :
Cette API permet de simuler des frappes au clavier tout comme vous le feriez.
bVk est le code ascii de la touche à envoyer au buffer clavier.
bScan est utilisé pour définir l'action de certaines touches spéciales comme "Imprime écran".
dwFlags est l'évènement que l'on souhaite génèrer comme KeyUp ou l'utilisation des touches étendues sur les claviers spéciaux.
dwExtraInfo permet d'ajouter une valeur supplémentaire à la touche actionnée.

Exemple d'utilisation :

' Exemple de Phil (Plancon@Onetelnet.fr)

Option Explicit

Private Declare Sub
keybd_event Lib "user32" Alias "keybd_event" ( _
       
ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, _
       
ByVal dwExtraInfo As Long)

' bVk est le code ascii de la touche
Private Const VK_LWIN = &H5B
Private Const VK_APPS = &H5D

' Pour d'autres touches...
' a à z 65 à 90
' Home 36
' End 35
' Flêche vers le haut 38
' Flêche vers le bas 40
' Flêche vers la gauche 37
' Flêche vers la droite 39
' Echap 27
' Impr écran 44 (= vbKeySnapshot)
' Page haut 33
' Page bas 34
' Insert 45
' F1 à F12 112 à 123
' Barre d'espace 32
' Ctrl 17
' Alt 18
' Maj 16
' Verr Num 144
' Arrêt défil 145
' Tab 9
' Shift 16

' bscan (Lorsque l'on utilise la touche imprime écran)
Const TheScreen = 1 ' Copie l'écran
Const TheForm = 0 ' Copie la fenêtre active

' dwFlags (le drapeau) :
Const KEYEVENTF_EXTENDEDKEY = &H1 ' Pour actionner les touches étendues
Const KEYEVENTF_KEYUP = &H2 ' Relache la touche

' ---Cet exemple montre comment gérer Windows---
Sub GestionWindows(Index As Integer)
' ---déclarations des variables---
Dim VK_ACTION As Long
' ---Traite l'action---
Select Case Index
Case 0 ' Ouverture de l'Exploreur
VK_ACTION = &H45 ' La lettre e (ascii 69)
Case 1 ' Rechercher des fichiers
VK_ACTION = &H46 ' La lettre f (ascii 70)
Case 2 ' Réduire toutes les fenêtres
VK_ACTION = &H4D ' La lettre m (ascii 77)
Case 3 ' Ouverture du menu exécuter
VK_ACTION = &H52 ' La lettre r (ascii 82)
Case 4 ' Actionner le menu démarrer
VK_ACTION = &H5B ' Le bouton démarrer de windows sur le clavier (ascci 91)
End Select
' ---Envoie de la séquence de touche---
Call keybd_event(VK_LWIN, 0, 0, 0)
Call keybd_event(VK_ACTION, 0, 0, 0)
Call keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0)
End Sub

Private Sub
Command1_Click()
' ---Copie d'écran de la forme active (pour l'écran utiliser "TheScreen")---
keybd_event vbKeySnapshot, TheForm, 0&, 0&
' ---On laisse le temps à Windows de charger l'image en mémoire---
DoEvents
' ---Copie du presse-papier dans le contrôle image1---
Image1 = Clipboard.GetData(vbCFBitmap)
End Sub

Retour à la liste des API

Visual Basic Research Center - (c) 2000/2002 -  Webmaster : docvb (chez) free (point) fr