Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Coordonnées & distance Jeu 23 Nov 2017 - 0:07 | |
| Bonjour à tous ! Voici une petite règle qui vous donnera l’écart en pixels entre deux points et vous donnera aussi les coordonnées x et y d’un point quelconque sur l’écran. Ce programme utilise la DLL de Klaus à télécharger >> ici << J’en profite pour remercier Klaus ! La DLL doit être située dans le répertoire courant du programme. Dans le cas contraire, il faudra adapter le chemin à la ligne 14. A l’aide de la souris, cliquez sur un point quelconque de l’écran, les coordonnées du premier point s’affichent. Déplacer la souris vers un deuxième point pour connaitre la distance parcourue en pixels. Un click supplémentaire permet de recommencer le processus. Vous pouvez mesurer en long, en large ou en travers, aussi bien dans une fenêtre Panoramic qu’en dehors. Le double affichage permet de connaitre les coordonnées relatives à Windows ou à Panoramic. Le source reste très simple ce qui permettra à chacun de le personnaliser en fonction de ses désirs, aussi bien dans la gestion des clicks que dans la position de la fenêtre au démarrage ou dans l’ergonomie de l’affichage… Bonne programmation à tous ! - Code:
-
' ------------------------------------------------------------------------------ ' PANORAMIC MEASURE ' MARC - November 2017 - Panoramic v0.9.28.i12 ' http://panoramic-language.pagesperso-orange.fr/French/index.html ' http://panoramic.top-forum.net ' Thanks to KLAUS for his DLL : KGF.DLL ' ------------------------------------------------------------------------------ DIM z%, res%, res1%, Click%, i% DIM W_x1%, W_y1%, W_x2%, W_y2%, W_distance% DIM P_x1%, P_y1%, P_x2%, P_y2%, P_distance% DIM hnd%, x_MousePosition%, y_MousePosition%, x_AbosluteMousePosition%, y_AbosluteMousePosition% DIM a$ LABEL Quit DLL_ON "KGF.dll" BORDER_SMALL 0 WIDTH 0, 325 HEIGHT 0, 135 TOP 0,20 LEFT 0, SCREEN_X - 345 FONT_NAME 0,"Times New Roman" FONT_SIZE 0, 12 CAPTION 0,"|iiiiliiii|iiiiliiii|iiiiliiii|iiiiliiii|iiiiliiii|iiiiliiii|iiiiliiii|iiiiliiii|iiiiliiii|" res% = DLL_call2("WindowTopMost",handle(0),1) FOR i% = 1 to 11 ALPHA i% NEXT i% ' Première ligne LEFT 1, 110: TOP 1, 10 : CAPTION 1, "Windows" LEFT 2, 220: TOP 2, 10 : CAPTION 2, "Panoramic" ' 2ème ligne LEFT 3, 10 : TOP 3, 30 : CAPTION 3, "1st point" LEFT 4, 100: TOP 4, 30 LEFT 5, 210: TOP 5, 30 ' 3ème ligne LEFT 6,10 : TOP 6,50 : CAPTION 6, "2nd point" LEFT 7,100 : TOP 7,50 LEFT 8,210 : TOP 8,50 ' 4ème ligne LEFT 9,10 : TOP 9,70 : CAPTION 9, "Distance" LEFT 10,110: TOP 10,70 LEFT 11,220: TOP 11,70 ON_CLOSE 0, QUIT hnd% = handle(0) z% = 0 Click% = 0 WHILE Z%=0 res% = dll_call2("GetAbsoluteMousePosition",adr(x_AbosluteMousePosition%),adr(y_AbosluteMousePosition%)) res% = dll_call3("GetMousePosition",hnd%,adr(x_MousePosition%),adr(y_MousePosition%)) res1% = dll_call1("CheckMouseButton",1) IF res1%=1 IF Click% = 0 THEN Click% = 1 : ELSE : Click% = 0 PAUSE 200 END_IF IF Click% = 0 W_x1% = x_AbosluteMousePosition% W_y1% = y_AbosluteMousePosition% P_x1% = x_MousePosition% P_y1% = y_MousePosition% IF P_x1% <0 THEN P_x1% = 0 IF P_y1% <0 THEN P_y1% = 0 CAPTION 4, "x "+STR$(W_x1%)+" , y "+STR$(W_y1%) CAPTION 5, "x "+STR$(P_x1%)+" , y "+STR$(P_y1%) CAPTION 7, "x 0 , y 0" CAPTION 8, "x 0 , y 0" CAPTION 10, "0 pixel" CAPTION 11, "0 pixel" ELSE W_x2% = x_AbosluteMousePosition% W_y2% = y_AbosluteMousePosition% P_x2% = x_MousePosition% P_y2% = y_MousePosition% IF P_x2% <0 THEN P_x2% = 0 IF P_y2% <0 THEN P_y2% = 0 CAPTION 7, "x "+STR$(W_x2%)+" , y "+STR$(W_y2%) CAPTION 8, "x "+STR$(P_x2%)+" , y "+STR$(P_y2%) W_distance%=SQR(((W_x2%-W_x1%)*(W_x2%-W_x1%))+((W_y2%-W_y1%)*(W_y2%-W_y1%))) P_distance%=SQR(((P_x2%-P_x1%)*(P_x2%-P_x1%))+((P_y2%-P_y1%)*(P_y2%-P_y1%))) IF W_distance% = 0 THEN a$ = " pixel" : ELSE : a$ = " pixels" CAPTION 10, STR$(W_distance%)+a$ IF P_distance% = 0 THEN a$ = " pixel" : ELSE : a$ = " pixels" CAPTION 11, STR$(P_distance%)+a$ END_IF END_WHILE END ' ------------------------------------------------------------------------------ Quit: z%=1 TERMINATE RETURN EDIT : Mise à jour du source. => Cet utilitaire se maintient au premier plan en permanence grâce à la fonction issue de la DLL de Klaus : res% = DLL_call2("WindowTopMost",handle(0),1)Merci Klaus !
Dernière édition par Marc le Jeu 23 Nov 2017 - 23:35, édité 1 fois | |
|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Coordonnées & distance Jeu 23 Nov 2017 - 8:22 | |
| | |
|
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Coordonnées & distance Jeu 23 Nov 2017 - 23:41 | |
| Mise à jour du source du premier post :
Le programme se maintient au premier plan en permanence grâce à la fonction issue de la DLL de Klaus : res% = DLL_call2("WindowTopMost",handle(0),1) Merci Klaus !
Ainsi, si vous ouvrez une fenêtre quelconque qui remplie tout l'écran, cet utilitaire restera visible. | |
|
Contenu sponsorisé
| Sujet: Re: Coordonnées & distance | |
| |
|