DLL : Diverses fonctions

BENCH.DLL

Le fichier zip qui contient la dll et les sources en Delphi : bench.zip

GetCount

Cette fonction renvoie le nombre de millisecondes écoulées depuis le démarrage de Windows

Exemple :

DLL_ON "C:\Langages\Panoramic\DLL\bench.dll"
DIM Duree,I
Duree = DLL_CALL0("GetCount")
FOR I = 0 TO 10000
NEXT I
PRINT "Boucle de 0 à 10000 : ";-1*(Duree - DLL_CALL0("GetCount"));"ms"
DLL_OFF
END

MOUSE.DLL

mouse.dll Projet delphi demo.bas

GetMouseXY :

Récupération des coordonnées (sur la totalité de l'écran) et de l'état des boutons de la souris.

Exemple :

DLL_ON "C:\Langages\Panoramic\DLL\mouse.dll"
DIM coord$,bouton%,titre$
coord$=STRING$(20," ")
PRINT
PRINT "Quitter le programme en appuyant sur les 2 boutons de la souris à la fois"
REPEAT
  bouton% = DLL_CALL1("GetMouseXY",ADR(coord$))
  titre$="X:"+LEFT$(coord$,4)+" Y:"+MID$(coord$,5,4)+" bouton:"+STR$(bouton%)
  CAPTION 0, titre$
UNTIL bouton%=3
HIDE 0
DLL_OFF
END

Valeur de retour :

Note : Vous pouvez avoir une combinaison de bouton.

La chaine de caractères en retour contient les valeurs : "XXXXYYYY"

SetMouseXY :

Permet de positionner le curseur de la souris sur l'écran. Les coordonnées sont en valeurs absolues par rapport à la totalité de l'écran.

Exemple :

DIM Dll_return%
' Positionnement de la souris au centre de l'écran
Dll_return% = DLL_CALL2("SetMouseXY",SCREEN_X/2,SCREEN_Y/2)

Cette fonction renvoie 1


UTILS.DLL

Utils.dll Projet delphi demo.bas

GetUserFromWindows

Connaitre le profil de l'utilisateur qui a ouvert la session.

Exemple :

HIDE 0
DLL_ON "C:\Langages\Panoramic\DLL\Utils.dll"
DIM Dll_return%
DIM UserName$ : UserName$ = STRING$(250," ")
Dll_return% = DLL_CALL2("GetUserFromWindows", ADR(UserName$), LEN(UserName$))
UserName$ = TRIM$(UserName$)
MESSAGE "Appel à GetUserFromWindows:     " + UserName$
END

GetShortName

Transforme un NOM LONG de chemin +fichier en NOM COURT au format DOS

Exemple :

DIM Dll_return%, Panoramic$
Panoramic$ = "C:\Program Files (x86)\Panoramic Editor\Panoramic_editor.exe"
Dll_return% = DLL_CALL2("GetShortName",ADR(Panoramic$),LEN(Panoramic$))
' Panoramic$ <-- C:\PROGRA~2\PANORA~1\PANORA~1.EXE

Execute

Permet de lancer un batch de manière silencieuse (sans apparition de la fenêtre DOS).
Cette commande renvoie toujours 1.

Exemple :

DIM Dll_return%, batch$
batch$ = "go.bat"
Dll_return = DLL_CALL1("Execute", ADR(batch$))

ExecuteAndWait

Idem que la fonction précédente mais l'appel de cette fonction est bloquante: on attend la fin d'exécution du batch.
Cette commande renvoie 0 en cas d'échec.

Exemple :

DIM Dll_return%, batch$
batch$ = "go.bat"
Dll_return% = DLL_CALL1("ExecuteAndWait", ADR(batch$))

PICK.DLL

Pick.dll Projet delphi demo.ba

GetMouseXY

Permet de connaitre les coordonnées de la souris (cf. MOUSE.DLL).

Exemple :

DIM Dll_return%, Coordonnee$ : Coordonnee$ = STRING$(10," ")
Dll_return = DLL_CALL1("GetMouseXY", ADR(Coordonnee$))

GetColorXY

Permet de connaitre la couleur du pixel situé en X,Y (fonctionne sur la totalité de l'écran).

Exemple :

DIM Dll_return%, x, y, couleur$ : couleur$ = STRING$(10," ")
x = 100 : y = 100
Dll_return% = DLL_CALL1("GetColorXY", x, y, ADR(couleur$))

La couleur est retournée dans une chaine de caractère sous le format hexadécimal : RRVVBB

Exemple d'utilisation de ces deux fonctions :

rem ============================================================================
rem         Exemple d utilisation de PICK.DLL par Papydall                     .
rem ============================================================================
LABEL clic,FinProg
DIM r,v,b
ALPHA 10 : TOP 10,350 : LEFT 10,100 : FONT_BOLD 10
2d_fill_color rnd(255),rnd(255),rnd(255) : 2d_circle 300,200,100
2d_rectangle 10,20,50,300   : 2d_flood 11,21,255,255,0
2d_rectangle 210,20,250,300 : 2d_flood 11,21,0,255,0
2d_circle 300,200,50: 2d_flood 300,200,0,255,255
DLL_ON "C:\Panoramic\NARDO\pick.dll" : ' Adaptez le chemin
ON_CLOSE 0,FinProg
TIMER 1:TIMER_INTERVAL 1,100
ON_TIMER 1,clic
END

REM ============================================================================
clic:
  Pick()
RETURN
rem ============================================================================
SUB Pick()
  DIM_local Pick_Coordonnee$, Pick_x,Pick_y,Pick_retour%,bt%,t$

  Pick_Coordonnee$ = STRING$(8," ")
  bt% = dll_call1("GetMouseXY",ADR(Pick_Coordonnee$))
  Pick_x = VAL(LEFT$(Pick_Coordonnee$,4))
  Pick_y = VAL(RIGHT$(Pick_Coordonnee$,4))
  Pick_Coordonnee$=STRING$(20," ")
  Pick_retour% = dll_call3("GetColorXY",Pick_x,Pick_y,ADR(Pick_Coordonnee$))

  CAPTION 0,"Coordonnées "+str$(Pick_x)+" x "+str$(Pick_y)+" couleur :"+Pick_Coordonnee$
  r = hex(left$(Pick_Coordonnee$,2))
  v = hex(mid$(Pick_Coordonnee$,3,2))
  b = hex(mid$(Pick_Coordonnee$,5,2))

  t$ = "Déplacez la souris où vous voulez, même en dehors de cette fenêtre"+chr$(13)+chr$(13)
  t$ = t$ + "Coordonnées de la souris : x="+str$(Pick_x)+" y="+str$(Pick_y)+" bouton="+STR$(bt%)+chr$(13)
  t$ = t$ + "Couleur du pixel :R = "+str$(r) + "  V = " + str$(v) + "   B = "+str$(b)
  caption 10,t$
END_SUB
rem ============================================================================

FinProg:
  DLL_OFF
TERMINATE

rem ============================================================================