Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| copie d'ecran accidentelle | |
| | |
Auteur | Message |
---|
sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: copie d'ecran accidentelle Mer 23 Avr 2014 - 15:45 | |
| Salut voila un code qui m' a surpris On peut faire une capture d’écran avec Panoramic sans utiliser irfanview Je voudrais savoir si ce que j'ai obtenu accidentellement chez moi est faisable chez vous je travaille sur des bmp 1024 par 768 Mode opératoire on lance le code on charge les bmp on positionne le curseur de la souris en haut à gauche du bmp on enfonce la touche 5 du pave numerique sans bouger la souris , on appuie sur " w " Le résultat est sauve dans le fichier " temp" il s'affiche dans le lecteur habituel - Code:
-
dim a,temp$ ,f$
width 0,150 height 0,150
Picture 2 Top 2, 1 Left 2, 1 Width 2, 100 Height 2, 100
Picture 3 Top 3, 200 Left 3, 655 Width 3, 100 Height 3, 100
Hint 3, " Picture 3"
open_dialog 100
f$=file_name$(100) ' print f$ wait 2000 ' stretch_on 2 file_load 2, f$
' 2d_target_is 0 ' 2d_fill_color 120,25,0 open_dialog 200 f$=file_name$(200) file_load 3, f$ wait 10 hide 3
stretch_on 2 ' stretch_on 3 image 5
repeat if mouse_right_down(0)=1 then print "serge " if scancode=96 then a =4 if scancode=97 then a =8 if scancode=98 then a =16 if scancode=99 then a =32 if scancode=100 then a =64 if scancode=101 then a =2000 2d_image_copy 5,mouse_x_position(2),mouse_y_position(2),mouse_x_position(2)+a,mouse_y_position(2)+ a
2d_target_is 3 2d_image_paste 5,mouse_x_position(2), mouse_y_position(2) -25 wait 60 2d_target_is 0
2d_image_paste 5,mouse_x_position(2), mouse_y_position(2)+500 wait 50 until scancode =87 width 0,100 height 0, 100 file_save 3,"C:\temp\toto.bmp" execute "C:\temp\toto.bmp" terminate utile ou pas ? | |
| | | sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: copie d'ecran accidentelle Mer 23 Avr 2014 - 16:12 | |
| | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: copie d'ecran accidentelle Mer 23 Avr 2014 - 18:10 | |
| Bonjour sergeauze, Je n'ai pas bien compris ton code, mais ça m'a donné une idée, et finalement il est très simple d'obtenir avec Panoramic une copie intégrale de l'écran: - Code:
-
WIDTH 0,0: HEIGHT 0,0: BORDER_HIDE 0: HIDE 0 IMAGE 1: 2D_IMAGE_COPY 1,0,0,SCREEN_X-1,SCREEN_Y-1 FILE_SAVE 1,"C:\TEMP\Copecran.bmp" TERMINATE avec seulement 3 lignes de code ! Je sais, on peut faire la même chose avec la touche ImprEcran, mais là c'est par programme. Et on peut envisager de ne saisir qu'une zone choisie de l'écran, en connaissant les coordonnées de la souris. Très intéressant ! | |
| | | sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: copie d'ecran accidentelle Mer 23 Avr 2014 - 18:24 | |
| je suis heureux que mon inutilitaire t'inspire une idée et je reste admiratif devant l’Économie des moyens employés
| |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: copie d'ecran accidentelle Mer 23 Avr 2014 - 18:33 | |
| C'est vrai qu'avec ces 3 lignes, la capture écran devient un jeu d'enfant sur tout l'écran ou partiellement | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: copie d'ecran accidentelle Mer 23 Avr 2014 - 18:44 | |
| Le problème pour la copie partielle c'est de connaître les coordonnées des clics souris... J'ai essayé de définir le form 0 sur tout l'écran avant de le cacher (Hide), la capture marche tout pareil (il faut juste introduire une petite tempo entre le hide et la capture (100 ou 200 ms). Mais le hic c'est que les clics souris ne sont pas reconnus, du fait que le Form est caché.
Je sais, il existe des dll qui permettent de connaître ces coordonnées souris sur tout l'écran, mais ça enlève la simplicité de la chose... si quelqu'un a une idée ?
Après, on peut capturer systématiquement tout l'écran et découper ensuite dans l'image obtenue la zone qui intéresse. | |
| | | sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: copie d'ecran accidentelle Mer 23 Avr 2014 - 19:46 | |
| j'avais zappe ce qui était écrit dans la documentation: "Un IMAGE peut charger une image en mémoire en capturant l'écran avec la commande 2D_IMAGE_COPY." Et tout s'eclaire pour moi j'utilise IMAGE dans non code de détourage et incrustation pour sa rapidite employe avec mouse _x_ position, mouse _y_ position je transfère des portions du contenu d'un picture vers un autre c'est peut être une piste à explorer | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: copie d'ecran accidentelle Mer 23 Avr 2014 - 20:05 | |
| J'aime participer, voici donc mon code - Code:
-
dim i,x,y ' Créer un fond quelconque for x = 0 to screen_x step 20 for y = 0 to screen_y step 20 print_locate x,y : print "*" next y next x ' Créer une sorte d'engin 2d_pen_color rnd(255),rnd(255),0 for i = 10 to 100 step 2 2d_Rectangle 100,i+50,300+i,200-i next i ' Copier la portion de l'écran contenant l'image IMAGE 1: 2D_IMAGE_COPY 1,80,40,410,210 FILE_SAVE 1,"C:\TEMP\Copecran.bmp"
mais ce n'est peut-être pas ce que vous chercher à atteindre | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: copie d'ecran accidentelle Mer 23 Avr 2014 - 20:23 | |
| ce que vous chercher... hum, papydall...
Ton image a son charme, mais perso je chercherais plutôt à faire une copie simple d'une zone choisie de l'écran actuel (plutôt que tout l'écran comme ci-dessus). Et avec des moyens purement panoramic (sinon on sait le faire avec des outils externes). | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: copie d'ecran accidentelle Mer 23 Avr 2014 - 20:55 | |
| Tu vois tout l’écran copié ? Personnellement je ne vois qu’une portion de l’écran dans la copie ! - JL35 a écrit:
- Ton image a son charme, mais perso je chercherais plutôt à faire une copie simple d'une zone choisie de l'écran actuel (plutôt que tout l'écran comme ci-dessus). Et avec des moyens purement panoramic (sinon on sait le faire avec des outils externes).
C’est ce que mon code fait : copier une zone de l’écran et non tout l’écran et avec des moyens purement Panoramic. Parlons-nous au moins le même langage ? ou bien ai-je loupé quelque chose ? NB : +1 pour le « vous chercher » | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: copie d'ecran accidentelle Mer 23 Avr 2014 - 22:09 | |
| Certes papydall il y a un malentendu.
Tu écris for x = 0 to screen_x step 20 et for y = 0 to screen_y step 20 c'est à dire tout l'écran, mais tu n'écris physiquement que dans la zone 600x480 pixels qui sont les dimensions implicites du Form 0, et tu ne travailles en capture qu'à l'intérieur de la zone panoramic du Form 0 (80,40 à 410,210), les coordonnées données étant relatives à la position du Form 0, ce qui est tout à fait classique, et non pas absolues par rapport à la totalité de l'écran.
Moi je parlais de la capture plus générale d'une zone quelconque de l'intégralité de l'écran, avec des coordonnées absolues, indépendamment de la zone Panoramic, et d'ailleurs sans faire apparaître de fenêtre de travail panoramic, qui perturbe l'affichage.
Quand je disais "... tout l'écran comme ci-dessus..." je parlais de ma capture à moi, et non de la tienne ! | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: copie d'ecran accidentelle Mer 23 Avr 2014 - 22:38 | |
| Maintenant, je vois mieux bien que je n'eusse pas changé de lunettes! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| | | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: copie d'ecran accidentelle Jeu 24 Avr 2014 - 6:27 | |
| Je viens d’apprendre que Windows 7 ( et probablement Vista et 8 ) possède un outil plutôt bien caché. Il s’agit de SnippingTool.exe et qui se trouve sous " C:\Windows\system32\SnippingTool.exe"il vous permet de prendre des captures d'écrans (forme libre, rectangle, fenêtre ou plein écran), de les annoter et de les partager. Pour le trouver, tapez outil capture dans la barre de recherche de votre menu démarrer. A votre disposition pour les annotations : un stylo de la forme/couleur de votre choix ainsi qu'un fluo et une gomme. Vous pouvez enregistrer vos captures en format GIF, JPG ou PNG. Un bouton vous permet aussi d'envoyer l'image par mail. Et pleins d'autres options à découvrir. Essayez ce - Code:
-
execute_wait "C:\Windows\system32\SnippingTool.exe"
Pour en apprendre davantage, rendez-vous ici | |
| | | sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: copie d'ecran accidentelle Jeu 24 Avr 2014 - 12:16 | |
| salut à tous Merci Papydall pour cette information Windows et ses applications cachées :tout un programme ! Mais pour le moment le défi est de réaliser une un copie partielle d’écran en panoramic pur Le nombre faisant la force la solution ne devrait pas tarder à venir | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| | | | sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: copie d'ecran accidentelle Ven 25 Avr 2014 - 21:50 | |
| salut "la solution ne devrait pas tarder à venir" du moins je l’espère Je vais plancher sur le sujet ; mais toutes les bonnes volontés sont les bien venues | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: copie d'ecran accidentelle Ven 25 Avr 2014 - 22:18 | |
| Bonsoir sergeauze,
Je me demande quand même si c'est faisable en panoramic pur... Le problème étant de connaître les coordonnées du clic souris à un endroit quelconque de l'écran (y compris en dehors d'une fenêtre panoramic éventuelle), et ça à ma connaissance ce n'est pas possible en panoramic... sauf idée de génie...
Et même si on obtenait les coordonnées du clic, il faudrait pouvoir tracer un repère (une croix par exemple) pour marquer visuellement le point de départ de la capture... et ça ça paraît encore plus difficile !
La seule solution que je vois c'est de faire une capture de tout l'écran, comme plus haut, puis d'afficher l'image obtenue dans un picture, puis dans ce picture de délimiter la zone à garder. Mais c'est quand même un peu lourd... | |
| | | sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: copie d'ecran accidentelle Ven 25 Avr 2014 - 22:26 | |
| Pour le moment c'est ce que je fais | |
| | | sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: copie d'ecran accidentelle Lun 28 Avr 2014 - 15:59 | |
| Salut à tous Un peu lourd c'est vrai, mais réalisable je soumets ma version:un essai améliorable les instructions sont dans le code - Code:
-
' xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ' x x ' x Copie d'ecran puis capture d'un partie d'ecran x ' x xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
' 1) On lance le programme ' 2) delimitation de la zone de capture ' a) click gauche de la souris ' b) click droit de la souris ' IMPORTANT:respecter l'ordre des clicks ' :le click droit se fait en decallage vers le bas ' et à droite par rapport au click gauche ' 3)On enfonce le touche "w " ' 4) Le programme se termine ....on attend que ça se passe dim a,b,c,d ,f$
picture 1
hide 1
WIDTH 0,0: HEIGHT 0,0: BORDER_HIDE 0 HIDE 0
IMAGE 2:wait 200 :2D_IMAGE_COPY 2,0,0,SCREEN_X-1,SCREEN_Y-1 wait 200 show 0 show 1
WIDTH 0,SCREEN_X-1: HEIGHT 0,SCREEN_y-1 WIDTH 1,SCREEN_X-1: HEIGHT 1,SCREEN_y-1 2d_target_is 1 2D_IMAGE_paste 2,0,0 rem imprime les positions en X et Y de la souris quand on enfonce le bouton droit sur picture 1 ' print_locate 20,20 repeat if mouse_left_down(1)=1
print mouse_x_left_down(1)
a= mouse_x_left_down(1) b= mouse_y_left_down(1)
end_if
if mouse_right_down(1)=1
print mouse_y_right_down(1) c= mouse_x_right_down(1) d= mouse_y_right_down(1)
end_if until scancode =87 2d_target_is 1 2D_IMAGE_COPY 2 ,a,b,c,d FILE_SAVE 2,"C:\temp\tutu.bmp" wait 200
2d_target_is 1 2D_IMAGE_paste 2 ,0,0 wait 5000 ' la capture de la partie selectionnée s'affiche dans le lecteur ' d'images par defaut execute "C:\temp\tutu.bmp" terminate | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: copie d'ecran accidentelle Lun 28 Avr 2014 - 17:33 | |
| Pas mal sergeauze, y'a de l'idée, tout ça en panoramic pur c'est bien !
Remarques: - pourquoi affiches-tu seulement la position x pour le clic gauche et seulement la position y pour le clic droit ? A la place des: print mouse_x_left_down(1) et print mouse_y_left_down(1) j'aurais fait après a=... et b=... print str$(a)+","+str$(y) et après c=... et d=... print str$(c)+","+str$(d)
Sinon, très bien, idée astucieuse ! | |
| | | sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: copie d'ecran accidentelle Lun 28 Avr 2014 - 22:20 | |
| le code n’étant pas finalise j'ai laisse trainer des balises que je m’étais faites Un autre code en cours de gestation :transfert d'un picture vers l'autre toujours "w "pour quitter balayage du picture en haut à gauche dimensions du pavet de balayage à la vollée touche 0 at 4 0=rien 4 =64 pixels l'image est stable chez moi - Code:
-
' TRANSFERT
dim a,temp$ ,f$ width 0,1600 height 0,1000 a=0.2
Picture 2 Top 2, 1 ' Left 2, 1000 Width 2, 800 Height 2, 800
' Hint 2, " Picture 2"
Picture 3 Top 3, 1 Left 3, 800 Width 3, 800 Height 3, 800
' Hint 3, " Picture 3"
picture 6 top 6,800 width 6,250 ' Hint 6, " Picture 6" open_dialog 100 f$=file_name$(100)
wait 200
file_load 2, f$
open_dialog 200 f$=file_name$(200) file_load 3, f$ wait 200
stretch_on 6 image 5
repeat
if scancode=96 then a =0.2 : ' touche 0 if scancode=97 then a =8 : ' touche 1 if scancode=98 then a =16 if scancode=99 then a =32 if scancode=100 then a =64 2d_target_is 2 2d_image_copy 5,mouse_x_position(2),mouse_y_position(2),mouse_x_position(2)+a,mouse_y_position(2)+ a
2d_target_is 3 2d_image_paste 5,mouse_x_position(2), mouse_y_position(2) wait 60 2d_target_is 6 stretch_on 6 2d_image_paste 5,mouse_x_position(2)/100, mouse_y_position(2)/100 wait 60 until scancode =87 file_save 3,"C:\temp\monimage.bmp" wait 200 execute "C:\temp\monimage.bmp" :terminate il s'agit là encore d'un essai | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: copie d'ecran accidentelle Mer 30 Avr 2014 - 18:15 | |
| Pour ce qui est de la capture sur tout l'écran, je me suis inspiré de ton code et j'ai fait quelque chose d'un peu plus simple: On clique sur l'image de l'écran, une croix s'affiche (inutile peut-être), et sans relâcher on déplace la souris vers le coin inférieur droit de la capture désirée: le rectangle de sélection s'affiche en pointillé pendant le déplacement. On relâche, et la zone choisie est copiée dans le presse-papier. - Code:
-
LABEL Timeur DIM t,x1,y1,x,y,xs,ys BORDER_HIDE 0: HIDE 0: WAIT 100: WIDTH 0,SCREEN_X: HEIGHT 0,SCREEN_Y IMAGE 2: 2D_IMAGE_COPY 2,0,0,SCREEN_X-1,SCREEN_Y-1: ' Copie écran dans Image 2 WAIT 100 PICTURE 1: FULL_SPACE 1: 2D_TARGET_IS 1: 2D_IMAGE_PASTE 2,0,0 SHOW 0 t = 0: TIMER 3: TIMER_INTERVAL 3,200: ON_TIMER 3,Timeur END ' ============================================================================== Timeur: TIMER_OFF 3 x = MOUSE_X_POSITION(1): y = MOUSE_Y_POSITION(1): ' position courante IF t = 0 IF MOUSE_LEFT_DOWN(1) = 1 t = 1: x1 = x: y1 = y: ' position de départ 2D_LINE x-20,y,x+20,y: 2D_LINE x,y-20,x,y+20: ' repère coin haut/gauche 2D_PEN_DOT END_IF ELSE IF MOUSE_LEFT_UP(1) = 1 IF x<x1 THEN xs = x1: x1 = x: x = xs IF y<y1 THEN ys = y1: y1 = y: y = ys 2D_IMAGE_PASTE 2,0,0 2D_IMAGE_COPY 2,x1,y1,x,y: CLIPBOARD_COPY 2: ' capture dans le presse-papier EXECUTE "C:\Progra~2\Irfanv~1\i_view32.exe /clippaste": ' pour voir TERMINATE END_IF IF MOUSE_LEFT_UP(1) = 0 IF x<>xs OR y<>ys 2D_IMAGE_PASTE 2,0,0: ' régénère l'image 2D_LINE x1,y1,x,y1:2D_POLY_TO x,y:2D_POLY_TO x1,y:2D_POLY_TO x1,y1 END_IF END_IF END_IF xs = x: ys = y TIMER_ON 3 RETURN ' ============================================================================== C'est sûrement perfectible (il y a un Goto pas très élégant...), et il manque en tout cas un test sur la position de la souris qui ne doit pas être au final à gauche ou au-dessus de la position de départ, sinon ça plante. PS Je précise: - si la position d'arrivée est à droite et au-dessus de celle de départ, l'image capturée est à l'envers, c'est amusant; - par contre si elle est à gauche, là ça plante. J'ai ajouté le test dans le code ci-dessus, et j'ai enlevé le goto disgrâcieux. L'Execute IrfanView n'est là que pour visualiser le contenu résultat du presse-papier, après on en fait ce qu'on veut. Edit 01/05: suppression (récupération) des cas d'erreurs (clic final à gauche ou au-dessus du clic d'origine), et plus d'image inversée.
Dernière édition par JL35 le Jeu 1 Mai 2014 - 15:13, édité 1 fois | |
| | | sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: copie d'ecran accidentelle Mer 30 Avr 2014 - 18:43 | |
| salut Merci jl 35 pour tes améliorations du code Pas mal du tout l’image en miroir ! Pour éviter le plantage ? On devrait pouvoir trouver une solution | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: copie d'ecran accidentelle Mer 30 Avr 2014 - 19:01 | |
| Comme je disais à la fin j'ai ajouté le test pour la position finale à gauche (qui plantait), mais pas pour la position finale en haut qui renvoie une image inversée, ça peut servir ! (et ça ne plante pas). | |
| | | Contenu sponsorisé
| Sujet: Re: copie d'ecran accidentelle | |
| |
| | | | copie d'ecran accidentelle | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |