FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» SineCube
capture - Capture d'une zone de l'écran total Emptypar papydall Aujourd'hui à 0:49

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
capture - Capture d'une zone de l'écran total Emptypar Yannick Hier à 18:32

» Philharmusique
capture - Capture d'une zone de l'écran total Emptypar jjn4 Hier à 13:58

» PANORAMIC V 1
capture - Capture d'une zone de l'écran total Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
capture - Capture d'une zone de l'écran total Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
capture - Capture d'une zone de l'écran total Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
capture - Capture d'une zone de l'écran total Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
capture - Capture d'une zone de l'écran total Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
capture - Capture d'une zone de l'écran total Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0
capture - Capture d'une zone de l'écran total Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
capture - Capture d'une zone de l'écran total Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
capture - Capture d'une zone de l'écran total Emptypar Klaus Lun 6 Mai 2024 - 10:23

» @Jack
capture - Capture d'une zone de l'écran total Emptypar Jack Mar 30 Avr 2024 - 20:40

» Une calculatrice en une ligne de programme
capture - Capture d'une zone de l'écran total Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
capture - Capture d'une zone de l'écran total Emptypar leclode Sam 27 Avr 2024 - 17:59

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-39%
Le deal à ne pas rater :
Pack Home Cinéma Magnat Monitor : Ampli DENON AVR-X2800H, Enceinte ...
1190 € 1950 €
Voir le deal

 

 Capture d'une zone de l'écran total

Aller en bas 
3 participants
AuteurMessage
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

capture - Capture d'une zone de l'écran total Empty
MessageSujet: Capture d'une zone de l'écran total   capture - Capture d'une zone de l'écran total EmptyJeu 16 Nov 2017 - 21:07

Rassurez-vous, rien à voir avec les UV !
C'est la capture rectangulaire d'une zone quelconque de l'écran du moniteur, délimitée à la souris (clic en haut à gauche de la zone, puis clic en bas à droite).
L'image résultante est récupérée soit dans un fichier image bmp, soir dans le presse-papier.
Pour détecter le clic souris sur l'écran, j'ai utilisé une DLL de notre ami Nardo26: Pick.dll, fonction 'GetMouseXY', qui donne les coordonnées en valeur absolue de la souris sur l'écran et l'état de ses boutons.
Code:
' Capture d'une zone de l'écran total -> fichier ou clipboard
' NB: DLL de Nardo26: Pick.dll, à récupérer sur son site:
'    http://nardo26.lescigales.org/dll-diverses-fonctions-28.html
DIM x%,y%,w%,h%,et%,el%,a$,b$,fr$
fr$ = "C:\TEMP\Capture.bmp": ' ou fr$ = "" -> clipboard)

BORDER_SMALL 0: FONT_BOLD 0: WIDTH 0,260: HEIGHT 0,65: FONT_NAME 0,"Arial"
  CAPTION 0," CAPTURE  D'UNE  ZONE  DE  L'ÉCRAN": COLOR 0,200,255,255: FONT_SIZE 0,11
ALPHA 2: TOP 2,5: CAPTION 2,"1) Click le coin supérieur gauche"
b$ = "0"
WHILE b$ = "0"
    Pickmouse(): a$ = CLIPBOARD_STRING_PASTE$: b$ = MID$(a$,9,1)
    PAUSE 50
END_WHILE
x% = VAL(LEFT$(a$,4)): y% = VAL(MID$(a$,5,4))
et% = 3: el% = 20: ' épaisseur trait, 1/2 longueur trait
FORM 7: BORDER_HIDE 7: TOP 7,y%-el%: LEFT 7,x%-et%/2: WIDTH 7,et%: HEIGHT 7,2*el%
    COLOR 7,255,0,255
FORM 8: BORDER_HIDE 8: TOP 8,y%-et%: LEFT 8,x%-el%: WIDTH 8,2*el%: HEIGHT 8,et%
    COLOR 8,255,0,255
CAPTION 2,"2) Click le coin inférieur droit"
PAUSE 500
b$ = "0"
WHILE b$ = "0"
    Pickmouse(): a$ = CLIPBOARD_STRING_PASTE$: b$ = MID$(a$,9,1)
    PAUSE 50
END_WHILE
w% = VAL(LEFT$(a$,4))-x%: h% = VAL(MID$(a$,5,4))-y%
DELETE 7: DELETE 8
Capture_T(x%,y%,w%,h%,fr$)
CAPTION 2,"Image :  "+fr$

' Rect_Form(x%,y%,w%,h%,3,65536*255+256*255): ' pour voir
END
' ==============================================================================
SUB Pickmouse()
  ' Souris dans tout l'écran: position, boutons
  ' -> chaîne xxxxyyyyb -> clipboard
  DIM_LOCAL a$,bt%
  DLL_ON "C:\Panoramic\NARDO\pick.dll"
    a$ = STRING$(8," ")
    bt% = DLL_CALL1("GetMouseXY",ADR(a$))
  DLL_OFF
  CLIPBOARD_STRING_COPY a$+STR$(bt%): ' coordonnées et bouton
END_SUB
' ==============================================================================
SUB Capture_T(x,y,w,h,f$)
  ' Capture d'une zone de l'écran total, en x,y absolus, dimensions w x h,
  ' dans f$ (BMP), ou dans le presse-papier (clipboard) si f$ = ""
  ' ATTENTION: x et y absolus par rapport à la totalité de l'écran !
  DIM_LOCAL c2d%
  c2d% = NUMBER_2D_TARGET
  FORM 999: TOP 999,0: LEFT 999,0: WIDTH 999,SCREEN_X: HEIGHT 999,SCREEN_Y
    BORDER_HIDE 999: HIDE 999: 2D_TARGET_IS 999: WAIT 100: ' Tout l'écran
  IF w < 0 THEN x = x+w: w = ABS(w)
  IF h < 0 THEN y = y+h: h = ABS(h)
  IMAGE 1000: 2D_IMAGE_COPY 1000,x,y,x+w,y+h
  IF f$ = ""
      CLIPBOARD_COPY 1000
  ELSE
      FILE_SAVE 1000,f$
  END_IF
  2D_TARGET_IS c2d%: DELETE 999: DELETE 1000
END_SUB
' ==============================================================================
SUB Rect_Form(x%,y%,w%,h%,e%,rgb%)
  ' Tracé d'un rectangle sur tout l'écran
  DIM_LOCAL f%,r%,g%,b%
  r% = INT(rgb%/65536): g% = BIN_AND(rgb%,65280)/256: b% = BIN_AND(rgb%,255)
  f% = 890: FORM f%: COLOR f%,r%,g%,b%
  BORDER_HIDE f%: TOP f%,y%-e%/2: LEFT f%,x%-e%/2: WIDTH f%,w%+e%: HEIGHT f%,e%
  f%=f%+1: FORM f%: COLOR f%,r%,g%,b%
  BORDER_HIDE f%: TOP f%,y%+h%-e%/2: LEFT f%,x%-e%/2: WIDTH f%,w%+e%: HEIGHT f%,e%
  f%=f%+1: FORM f%: COLOR f%,r%,g%,b%
  BORDER_HIDE f%: TOP f%,y%-e%/2: LEFT f%,x%-e%/2: WIDTH f%,e%: HEIGHT f%,h%+e%
  f%=f%+1: FORM f%: COLOR f%,r%,g%,b%
  BORDER_HIDE f%: TOP f%,y%-e%/2: LEFT f%,x%+w%-e%/2: WIDTH f%,e%: HEIGHT f%,h%+e%
END_SUB
' ==============================================================================

En prime, une petite sub (Rect_Form) qui permet de tracer un rectangle n'importe où sur l'écran.

@Klaus
Je n'ai pas trouvé dans les fonctions de KGF.dll le moyen de détecter un clic sur l'écran, ou au moins de lire l'état des boutons, on peut juste le provoquer (AbsoluteMouseLeftClick).


Dernière édition par JL35 le Ven 17 Nov 2017 - 16:16, édité 1 fois
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12295
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

capture - Capture d'une zone de l'écran total Empty
MessageSujet: Re: Capture d'une zone de l'écran total   capture - Capture d'une zone de l'écran total EmptyJeu 16 Nov 2017 - 21:58

Citation :
Je n'ai pas trouvé dans les fonctions de KGF.dll le moyen de détecter un clic sur l'écran, ou au moins de lire l'état des boutons, on peut juste le provoquer (AbsoluteMouseLeftClick).
Oui, je n'ai pas fait de hook global pour intercepter un clic en-dehors des fenêtres de m'application.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

capture - Capture d'une zone de l'écran total Empty
MessageSujet: Re: Capture d'une zone de l'écran total   capture - Capture d'une zone de l'écran total EmptyJeu 16 Nov 2017 - 22:04

Merci pour ta confirmation Klaus, je craignais d'avoir raté quelque chose. Mais ce n'est pas grave, j'ai un palliatif.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12295
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

capture - Capture d'une zone de l'écran total Empty
MessageSujet: Re: Capture d'une zone de l'écran total   capture - Capture d'une zone de l'écran total EmptyJeu 16 Nov 2017 - 22:26

Tu sais que si tu dois utiliser cette possibilité en même temps que KGF.dll, tu peux appeler ces fonctions d'une autre DLL via KGF.dll:
http://klauspanoramic.esy.es/GestiondesDLLsdynamiquesDynamica.html#Dynamic_fr
Tu peux en fait appeler des fonctions de n'importe quelle DLL, en même temps que KGF.dll...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

capture - Capture d'une zone de l'écran total Empty
MessageSujet: Re: Capture d'une zone de l'écran total   capture - Capture d'une zone de l'écran total EmptyJeu 16 Nov 2017 - 22:42

Donc plusieurs dll sous un seul DLL_ON, je ne savais pas, c'est bon à savoir, merci Klaus.
(il faut dire que KGF.dll est une véritable encyclopédie !)
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12295
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

capture - Capture d'une zone de l'écran total Empty
MessageSujet: Re: Capture d'une zone de l'écran total   capture - Capture d'une zone de l'écran total EmptyJeu 16 Nov 2017 - 22:50

Oui, j'avais fait ça un jour lorsque je me suis rendu compte que KGF.dll mémorise certaines informations qui doivent absolument rester en mémoire, comme la liste de certains objets créés par KGF.dll, l'état des diverses bases de données, connexions FTP etc. Si entretemps, on a besoin d'une autre DLL, comme USER32.dll par exemple, c'est foutu... . Donc, j'ai fait cela pour régler ce problème.

D'ailleurs, ma base de données relationnelle BDR.dll est également disponible via KGF.dll à travers ce mécanisme !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

capture - Capture d'une zone de l'écran total Empty
MessageSujet: Re: Capture d'une zone de l'écran total   capture - Capture d'une zone de l'écran total EmptyJeu 16 Nov 2017 - 23:32

Je vais m'endormir plus serein !
Bonne nuit ! Sleep
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7009
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

capture - Capture d'une zone de l'écran total Empty
MessageSujet: Re: Capture d'une zone de l'écran total   capture - Capture d'une zone de l'écran total EmptyJeu 16 Nov 2017 - 23:43

Salut JL35

Je lance le programme et ...

ERREUR  Sad :
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
papydall

papydall


Nombre de messages : 7009
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

capture - Capture d'une zone de l'écran total Empty
MessageSujet: Re: Capture d'une zone de l'écran total   capture - Capture d'une zone de l'écran total EmptyVen 17 Nov 2017 - 0:05

J’ai posté ici un mini code de 3 lignes  qui permet de faire différents types de captures d’écran.
Mais comme  les bons trucs passent souvent inaperçus, seul Jicehel à réagi.

Je rappelle le code

Code:

picture 10 : full_space 10
execute_wait "SnippingTool.exe"
clipboard_paste 10

Pour plus d'info , cliquez sur le lien ci-dessus.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

capture - Capture d'une zone de l'écran total Empty
MessageSujet: Re: Capture d'une zone de l'écran total   capture - Capture d'une zone de l'écran total EmptyVen 17 Nov 2017 - 14:27

Salut papydall,
Bizarre ton erreur, ça semble vouloir dire que la dll de Nardo (GetMouseXY) ne t'a pas renvoyé une chaîne de 9 octets comme prévu ('xxxxyyyyb': valeur x, valeur y, état des boutons de la zone survolée...), tu as bien la bonne version (je sais quil y en a eu une déficiente).

Pour SnippingTool, ton exemple ne marche pas chez moi, il s'affiche une croix, c'est tout...
capture - Capture d'une zone de l'écran total Croix10

Perso j'utilise en général une fonction de capture de IrfanView, ça marche très bien, mais ce n'est pas en pur panoramic...
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7009
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

capture - Capture d'une zone de l'écran total Empty
MessageSujet: Re: Capture d'une zone de l'écran total   capture - Capture d'une zone de l'écran total EmptyVen 17 Nov 2017 - 15:38

Hello Juliet Lima Three Five

Je dispose de la dll de Nardo Pick.dll, mais il s’est avéré qu’elle est comment dire ? Obsolète !
Bon, je l’ai téléchargée à nouveau et il semble qu’elle fonctionne cette fois-ci.
Seulement, comme capture je n’obtiens qu’un horrible rectangle noir !

Pour SnippingTool,  voici ce que ça donne

capture - Capture d'une zone de l'écran total 120

Essaye de le lancer sous l’invite de commande, juste pour voir.
Ça doit donner ceci :

capture - Capture d'une zone de l'écran total 210
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

capture - Capture d'une zone de l'écran total Empty
MessageSujet: Re: Capture d'une zone de l'écran total   capture - Capture d'une zone de l'écran total EmptyVen 17 Nov 2017 - 15:54

Effectivement papydall, SnippingTool est bien plus séduisant (et plus satisfaisant) que mon programme.

MAIS, je suis sous Windows 7
- je fais Windows + 'R', et je tape SnippingTool.exe: très bien, il se lance, s'exécute et s'affiche.
- je fais depuis Panoramic
   EXECUTE_WAIT "SnippingTool.exe"
ou bien
   EXECUTE_WAIT "C:\Windows\System32\SnippingTool.exe"
dans les deux cas:
capture - Capture d'une zone de l'écran total Snip10
Et pourtant, il est bien dans C:\Windows\System32 d'après l'explorateur de fichier !
capture - Capture d'une zone de l'écran total Snip210

Il semble que ce ne soit pas le programme qui est là, mais un lien vers le véritable programme...
J'y perds mon latin... enfin, c'est une image, il y a bien longtemps que je l'ai perdu !


PS pour ton rectangle noir (horrible en plus) en résultat de capture (mon prog) je ne vois pas pourquoi, chez moi pas de pb, c'est la sub Capture_T() qui fait le boulot...
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7009
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

capture - Capture d'une zone de l'écran total Empty
MessageSujet: Re: Capture d'une zone de l'écran total   capture - Capture d'une zone de l'écran total EmptyVen 17 Nov 2017 - 16:14

Jl35 a écrit:
MAIS, je suis sous Windows 7

Moi également je suis sous W7.
SnippingTool tourne sur Vista, W7, W8, W10.

JL35 a écrit:
Et pourtant, il est bien dans C:\Windows\System32 d'après l'explorateur de fichier !

Ce type d’erreur est assez connu (une mauvaise indexation des fichiers, peut-être ? mais rien n’est sûr)
Suggestion : faire une copie du fichier SnippingTool.exe sur un autre endroit autre que  C :\Windows\System32 : sur le bureau par exemple et lance le code suivant

Code:

picture 10 : full_space 10
execute_wait "c:\ ....\SnippingTool.exe" :' Indiquer l'emplacement exact du fichier
clipboard_paste 10

Ça devrait fonctionner : parole de Papydall tongue
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

capture - Capture d'une zone de l'écran total Empty
MessageSujet: Re: Capture d'une zone de l'écran total   capture - Capture d'une zone de l'écran total EmptyVen 17 Nov 2017 - 16:22

Tu as bien fait de rayer ta parole: ça ne marche pas.
J'ai bien essayé de le copier (depuis Windows\System32) : il copie un lien (raccourci) vers le snippingtool de System32...
J'ai fait une recherche de SnippingTool.exe dans tout Windows: il ne trouve que celui-ci et un autre enfoui dans les profondeurs qui est aussi un lien, mais je ne trouve pas le véritable programme...
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7009
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

capture - Capture d'une zone de l'écran total Empty
MessageSujet: Re: Capture d'une zone de l'écran total   capture - Capture d'une zone de l'écran total EmptyVen 17 Nov 2017 - 16:30

Chez moi le fichier SnippingTool.exe ne pèse que 387 Ko (voir capture d’écran ci-dessous)
Pourquoi, le tien est plus lourd  (421 Ko) ?  Tu l’engraisses avec quel aliment ? Wink
Serait-il corrompu ?

capture - Capture d'une zone de l'écran total 121


Remarque : j'ai fait une copie de SnippingTool.exe sur le bureau et en l'exécutant j'obtiens exactement l'erreur que tu as signalée.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

capture - Capture d'une zone de l'écran total Empty
MessageSujet: Re: Capture d'une zone de l'écran total   capture - Capture d'une zone de l'écran total EmptyVen 17 Nov 2017 - 16:41

Mystère, il s'est engraissé tout seul (sur mon dos).En tout cas ce n'est pas un fichier normal, je ne peux pas le copier.

Je suis allé sur un portable Windows 10, il y a un SnippingTool.exe sous C:\Windows\System32, et il fait 3,01 M.
J'ai tenté de le copier sur une clé (avec l'explorateur de fichiers), ça marche, mais il ne copie qu'un raccourci (2 k !)
Je l'ai copié en ligne de commande, et là c'est complet.

Je le lance depuis la clé sur mon W7: manque de bol 'ce n'est pas une application Win32 valide'...

Bon, en conclusion (pour SnippingTool).
- Je renonce à le lancer depuis Panoramic, je n'y arrive pas.
- Je l'installe dans la barre des tâches (explorateur de fichier, C:\Windows\System32, clic droit sur SnippingTool.exe,
  'Épingler dans la barre des tâches'
Et là il suffit de cliquer sur le petit lasso en bas pour en disposer, il y a plein de possibilités (capture sous forme d'image ou de texte).
Revenir en haut Aller en bas
Contenu sponsorisé





capture - Capture d'une zone de l'écran total Empty
MessageSujet: Re: Capture d'une zone de l'écran total   capture - Capture d'une zone de l'écran total Empty

Revenir en haut Aller en bas
 
Capture d'une zone de l'écran total
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Capture d'une zone de l'écran total
» Capture d'une zone de l'écran total
» Afficher un texte sur l'écran total
» Capture écran
» Capture des replay TV

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: