Section courante

A propos

Section administrative du site

CALLDLL

Appel DLL
Liberty BASIC

Syntaxe

CALLDLL #handle, "function", param1 as type1 [, param2 as type2 ], RETURN AS returnType

Paramètres

Nom Description
#handle Ce paramètre permet d'indiquer le Handle étant donné au DLL lorsqu'il est ouvert avec l'instruction OPEN.
function Ce paramètre permet d'indiquer le nom de la fonction, enfermer entre guillemet.
param1 as type1 [, param2 as type2 ] Ce paramètre permet d'indiquer la liste de paramètre requise par la fonction API.
returnType Ce paramètre permet d'indiquer la valeur de retour de la fonction API.

Description

Cette commande permet d'appeler un API du système d'exploitation Windows.

Exemple

Voici un exemple permettant de faire clignoter les lumières du clavier (Caps Lock, Num Lock, Scroll Lock) au nombre de 10 fois chacun leurs tours (aussi connu sous le nom de «Keyboard Dancing LED Light Trick») :

  1. KEYEVENTFKEYUP = 2
  2. KEYEVENTFEXTENDEDKEY = 1
  3. vbKeyCapital = 20
  4. vbKeyNumLock = 144
  5. VKSCROLL = 145
  6.  
  7. open "kernel32.dll" for dll as #kernel32
  8. open "user32.dll" for dll as #user32
  9.  
  10. For J = 0 To 10
  11.    For I = 0 To 2
  12.         Select Case I
  13.            Case 0
  14.                calldll #user32, "MapVirtualKeyA", vbKeyCapital As Long, 0 As Long, result As Long
  15.                Attr = result
  16.                Mask = (KEYEVENTFEXTENDEDKEY Or 0)
  17.                calldll #user32, "keybd_event", vbKeyCapital As Long, Attr As Long, Mask As Long, 0 as Long, result As void
  18.  
  19.                calldll #user32, "MapVirtualKeyA", vbKeyCapital As Long, 0 As Long, result As Long
  20.                Attr = result
  21.                Mask = KEYEVENTFEXTENDEDKEY Or KEYEVENTFKEYUP
  22.                calldll #user32, "keybd_event", vbKeyCapital As Long, Attr As Long, Mask As Long, 0 As Long, result As Void
  23.            Case 1
  24.                calldll #user32, "MapVirtualKeyA", vbKeyNumLock As Long, 0 As Long, result As Long
  25.                Attr = result
  26.                Mask = KEYEVENTFEXTENDEDKEY Or 0
  27.                calldll #user32, "keybd_event", vbKeyNumLock As Long, Attr As Long, Mask As Long, 0 as Long, result As void
  28.  
  29.                calldll #user32, "MapVirtualKeyA", vbKeyNumLock As Long, 0 As Long, result As Long
  30.                Attr = result
  31.                Mask = KEYEVENTFEXTENDEDKEY Or KEYEVENTFKEYUP
  32.                calldll #user32, "keybd_event", vbKeyNumLock As Long, Attr As Long, Mask As Long, 0 As Long, result As Void
  33.            Case 2
  34.                calldll #user32, "MapVirtualKeyA", VKSCROLL As Long, 0 As Long, result As Long
  35.                Attr = result
  36.                Mask = KEYEVENTFEXTENDEDKEY Or 0
  37.                calldll #user32, "keybd_event", VKSCROLL As Long, Attr As Long, Mask As Long, 0 As Long, result As Void
  38.  
  39.                calldll #user32, "MapVirtualKeyA", VKSCROLL As Long, 0 As Long, result As Long
  40.                Attr = result
  41.                Mask = KEYEVENTFEXTENDEDKEY Or KEYEVENTFKEYUP
  42.                calldll #user32, "keybd_event", VKSCROLL As Long, Attr As Long, Mask As Long, 0 As Long, result As Void
  43.         End Select
  44.         calldll #kernel32, "Sleep", 250 As Long, Result As Long
  45.     Next I
  46. Next J
  47.  
  48. close #kernel32
  49. close #user32

N.B.: Pour cet exemple, vous pouvez consulter les API de Visual Basic (keybd_event, MapVirtualKeyA, Sleep) pour en savoir plus.

Voir également

Langage de programmation - Visual Basic pour Windows - API de Windows

Dernière mise à jour : Vendredi, le 21 juin 2013