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 |
|
|
| KGF.dll : SendStringAsChars CTRL+V ne fonctionne pas! | |
| | Auteur | Message |
---|
bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: KGF.dll : SendStringAsChars CTRL+V ne fonctionne pas! Ven 11 Oct 2013 - 9:06 | |
| Bonjour Klaus, En ce moment, j'essaye d'utiliser certaines fonctions de KGF.dll. Dans un petit programme personnel que je développe, j'ai besoin d'ouvrir par exemple Wordpad, ou bien Works ou alors Open Office, afin d'y copier soit une image, soit un petit texte, ou alors les deux! L'idéal, pour cela, c'est d'utiliser la séquence de touche : CTRL+V qui correspond à "coller" ce qu'il y a dans le presse papier. Mais voilà, je ne sais pas si la manière dont je procède dans ma sub copie() est la bonne, car ça ne marche pas du tout. Il ne se passe rien! Par contre, si je passe par la simulation de la touche alt dans la sub copie2(), tout fonctionne à merveille! Le problème, c'est qu'en faisant comme ceci, la séquence de touches à envoyer est différente dans Works ou encore Open Office et de plus, c'est plus long! C'est quand même plus simple d'envoyer CTRL+V dans le programme qu'on a ouvert. Voici mon programme essai: - Code:
-
label fin , ouvrimage , ouvretexte , action dim hnd% , res% , txt$ , f$ , t$
dll_on "c:\mesprog\KGF.dll" : ' <====== adapter le chemin
width 0,1000 : height 0,750 : on_close 0,fin
memo 1 : width 1,295 : height 1,120
picture 2 : top 2,125 : width 2,984 : height 2,570 : stretch_on 2
button 3 : top 3,50 : left 3,300 : height 3,60 : caption 3,"Copier image" : on_click 3,action button 4 : top 4,50 : left 4,400 : height 4,60 : caption 4,"Copier texte" : on_click 4,action button 5 : top 5,50 : left 5,500 : height 5,60 : caption 5,"Copier tout" : on_click 5,action button 11 : top 11,15 : left 11,350 : caption 11,"Charger image" : on_click 11,ouvrimage button 12 : top 12,15 : left 12,450 : caption 12,"Charger texte" : on_click 12,ouvretexte end
ouvrimage: open_dialog number_objects+1 filter number_objects,"fichiers image|*.bmp;*.jpg" f$=file_name$(number_objects) if f$<>"_" then file_load 2,f$ delete number_objects return
ouvretexte: open_dialog number_objects+1 filter number_objects,"fichiers texte|*.txt" t$=file_name$(number_objects) if t$<>"_" then file_load 1,t$ delete number_objects return
action: execute "write.exe" pause 1250 select number_click case 3 clipboard_copy 2:copie() case 4 clipboard_string_copy text$(1):copie() case 5 clipboard_copy 2:copie() clipboard_string_copy text$(1):copie() end_select return
sub copie() ' COPIE WORDPAD TRAITEMENT DE TEXTE EN PASSANT PAR LA TOUCHE CTRL ' CTRL+V+CTRL+ENTER ' =============================================================== ' ========== ICI ÇA NE FONCTIONNE PAS!!! ======================== ' =============================================================== hnd% = dll_call0("GetActiveControl") pause 500 txt$ = chr$(17)+"V" res% = dll_call2("SendStringAsChars",hnd%,adr(txt$)) pause 500 txt$ = chr$(17) res% = dll_call2("SendStringAsChars",hnd%,adr(txt$)) pause 500 txt$ = chr$(13) res% = dll_call2("SendStringAsText",hnd%,adr(txt$)) end_sub
sub copie2() ' COPIE WORDPAD TRAITEMENT DE TEXTE EN PASSANT PAR LA TOUCHE ALT ' ALT+C+TAB+TAB+ENTER+ENTER+ALT+ENTER hnd% = dll_call0("GetActiveControl") pause 500 txt$ = chr$(18)+"C" res% = dll_call2("SendStringAsChars",hnd%,adr(txt$)) pause 500 txt$ = chr$(9) res% = dll_call2("SendStringAsText",hnd%,adr(txt$)) pause 500 txt$ = chr$(9) res% = dll_call2("SendStringAsText",hnd%,adr(txt$)) pause 500 txt$ = chr$(13) res% = dll_call2("SendStringAsText",hnd%,adr(txt$)) pause 500 txt$ = chr$(13) res% = dll_call2("SendStringAsText",hnd%,adr(txt$)) pause 500 txt$ = chr$(18) res% = dll_call2("SendStringAsChars",hnd%,adr(txt$)) pause 500 txt$ = chr$(13) res% = dll_call2("SendStringAsText",hnd%,adr(txt$)) end_sub
fin: dll_off
Pour que le programme fonctionne, il faut remplacer copie() par copie2() dans la routine action. la sub copie() c'est CTRL+V+CTRL+ENTER et copie2() ALT+C+TAB+TAB+ENTER+ENTER+ALT+ENTER Merci de ta réponse. Je ne suis pas là avant ce soir 22h00 A+ | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF.dll : SendStringAsChars CTRL+V ne fonctionne pas! Ven 11 Oct 2013 - 10:54 | |
| Essaie comme ceci: - Code:
-
label fin , ouvrimage , ouvretexte , action dim hnd% , res% , txt$ , f$ , t$
dll_on "KGF.dll" : ' <====== adapter le chemin
width 0,1000 : height 0,750 : on_close 0,fin
memo 1 : width 1,295 : height 1,120
picture 2 : top 2,125 : width 2,984 : height 2,570 : stretch_on 2
button 3 : top 3,50 : left 3,300 : height 3,60 : caption 3,"Copier image" : on_click 3,action button 4 : top 4,50 : left 4,400 : height 4,60 : caption 4,"Copier texte" : on_click 4,action button 5 : top 5,50 : left 5,500 : height 5,60 : caption 5,"Copier tout" : on_click 5,action button 11 : top 11,15 : left 11,350 : caption 11,"Charger image" : on_click 11,ouvrimage button 12 : top 12,15 : left 12,450 : caption 12,"Charger texte" : on_click 12,ouvretexte end
ouvrimage: open_dialog number_objects+1 filter number_objects,"fichiers image|*.bmp;*.jpg" f$=file_name$(number_objects) if f$<>"_" then file_load 2,f$ delete number_objects return
ouvretexte: open_dialog number_objects+1 filter number_objects,"fichiers texte|*.txt" t$=file_name$(number_objects) if t$<>"_" then file_load 1,t$ delete number_objects return
action: execute "write.exe" pause 1250 select number_click case 3 clipboard_copy 2:copie() case 4 clipboard_string_copy text$(1):copie() case 5 clipboard_copy 2:copie() clipboard_string_copy text$(1):copie() end_select return
sub copie() ' COPIE WORDPAD TRAITEMENT DE TEXTE EN PASSANT PAR LA TOUCHE CTRL ' CTRL+V+CTRL+ENTER ' =============================================================== ' ========== ICI ÇA NE FONCTIONNE PAS!!! ======================== ' =============================================================== ' La ligne suivante, bien que correcte, est inutile, ' car si le handle est 0; GetActiveControl est exécutée de façon interne. ' hnd% = dll_call0("GetActiveControl")
txt$ = chr$(22) : ' control_v res% = dll_call2("SendStringAsText",hnd%,adr(txt$)) pause 500 txt$ = chr$(13) res% = dll_call2("SendStringAsText",hnd%,adr(txt$)) end_sub
sub copie2() ' COPIE WORDPAD TRAITEMENT DE TEXTE EN PASSANT PAR LA TOUCHE ALT ' ALT+C+TAB+TAB+ENTER+ENTER+ALT+ENTER hnd% = dll_call0("GetActiveControl") pause 500 txt$ = chr$(18)+"C" res% = dll_call2("SendStringAsChars",hnd%,adr(txt$)) pause 500 txt$ = chr$(9) res% = dll_call2("SendStringAsText",hnd%,adr(txt$)) pause 500 txt$ = chr$(9) res% = dll_call2("SendStringAsText",hnd%,adr(txt$)) pause 500 txt$ = chr$(13) res% = dll_call2("SendStringAsText",hnd%,adr(txt$)) pause 500 txt$ = chr$(13) res% = dll_call2("SendStringAsText",hnd%,adr(txt$)) pause 500 txt$ = chr$(18) res% = dll_call2("SendStringAsChars",hnd%,adr(txt$)) pause 500 txt$ = chr$(13) res% = dll_call2("SendStringAsText",hnd%,adr(txt$)) end_sub
fin: dll_off
Ca devrait marcher ainsi. | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: KGF.dll : SendStringAsChars CTRL+V ne fonctionne pas! Ven 11 Oct 2013 - 22:50 | |
| Bonsoir Klaus, Je te remercie beaucoup! Ça fonctionne super bien maintenant! J'ai un autre problème maintenant: Si j'ouvre worpad et que je charge directement un fichier par - Code:
-
execute "write.exe monfichier.txt" le curseur se met toujours au début du texte. Donc, je voudrais envoyer par le même système la séquence CTRL+FIN pour me positionner directement à la fin du fichier chargé. Par la même occasion, la séquence CTRL+HOME pourrait bien me servir aussi, donc comment faire aussi. Merci de ta sollicitude et de ton aide A+ | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF.dll : SendStringAsChars CTRL+V ne fonctionne pas! Sam 12 Oct 2013 - 2:05 | |
| Je vais voir ça et je te tiendrai au courant. | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: KGF.dll : SendStringAsChars CTRL+V ne fonctionne pas! Sam 12 Oct 2013 - 7:14 | |
| Grand merci Klaus, prends ton temps, rien ne presse. A+ | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF.dll : SendStringAsChars CTRL+V ne fonctionne pas! Dim 13 Oct 2013 - 10:58 | |
| J'ai résolu ton problème, par l'ajout d'une nouvelle fonction SendSingleCharAsVKCode. Là, tu peux spécifier les modificateurs CONTROL, SHIFT et ALT. J'ai préféré cette solution plutôt que de modifier une fonction existante.
KGF.dll passe à la version 2.46 du 13/10/2013. La doc est à jour. | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: KGF.dll : SendStringAsChars CTRL+V ne fonctionne pas! Dim 13 Oct 2013 - 12:45 | |
| Bonjour Klaus Je suis vraiment très content de cette nouvelle fonction! Je te remercie bien! Le fichier d'aide que j'ouvre en général, c'est KGFpdf. Dans l'exemple de cette fonction tu as mis en dernière ligne: - Code:
-
res% = dll_call5("SendSingleChar",handle(0),adr(car$),1,0,0) au lieu de : - Code:
-
res% = dll_call5("SendSingleCharAsVKCode",handle(0),adr(car$),1,0,0) Vérifie aussi les autres fichiers d'aide! Merci encore! A+ | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF.dll : SendStringAsChars CTRL+V ne fonctionne pas! Dim 13 Oct 2013 - 13:27 | |
| La doc est corrigée. Désolé pour cet oubli. | |
| | | Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: Re Jeu 17 Oct 2013 - 16:11 | |
| Salut à tous, me revoilà, vous êtes géniaux, j'ai beaucoup appris à relire Bignono (notamment le DELETE que je ne connaissais pas). J'ai essayé le code et pas la fonction intégrée à KGF, et chez moi l'image copiée sur le FORM est OK, mais par contre elle a de jolis traits en plus dans WORD PAD... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF.dll : SendStringAsChars CTRL+V ne fonctionne pas! Jeu 17 Oct 2013 - 18:36 | |
| ????????????,
Poste-nous le code en question ainsi qu'une copie d'écran montrant le problème... | |
| | | Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: RE Jeu 17 Oct 2013 - 19:58 | |
| OK merci, je suis sur le forum mais pas chez moi, je vous affiche ça demain, bonne soirée ! | |
| | | Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: RE Ven 18 Oct 2013 - 9:22 | |
| Bonjour à tous !
Bon alors là c'est le moment de me taper la honte ! Je ne sais pas insérer l'image !!! On me propose d'indiquer une URL et non pas tout simplement de rechercher l'image où elle est... et le bouton à côté me propose, lui, d'avoir accès à un hébergeur... Bon, je vais voir si ça marche en hébergeant, puis en trouvant l'URL de l'image hébergée... au loup ! | |
| | | Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: Re Ven 18 Oct 2013 - 9:38 | |
| Quel râleur je fais ! C'est maintenant que je me tape la honte ! C'est tellement simple avec cet hébergeur !!! Voilà : C'est très joli mais un peu différent de l'original qui est une vraie ancolie... Bon maintenant, j'utilise peu WORD PAD, c'est juste pour faire avancer le schmielblick... Bonne journée !!! | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: KGF.dll : SendStringAsChars CTRL+V ne fonctionne pas! Ven 18 Oct 2013 - 10:35 | |
| Bien, voila ! Aucune honte à se taper. On apprend de ses erreurs, de celles des autres et du savoir faire de ceux qui savent faire ! Hé je ne philosophe pas ! | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: KGF.dll : SendStringAsChars CTRL+V ne fonctionne pas! Dim 20 Oct 2013 - 9:41 | |
| @Froggy One Franchement, je trouve l'image rendu par WORD PAD plutôt plus belle que l'originale. "Mélancolie" est plus réelle. (Je n'ai pas pu m’empêcher de la faire) A+ | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: KGF.dll : SendStringAsChars CTRL+V ne fonctionne pas! Dim 20 Oct 2013 - 11:01 | |
| Je m'avance mais c'est typiquement le type d'images que l'on obtient en faisant un copier coler d'une image ayant plus de couleurs (genre 16 M de couleurs) dans une image en 65000... mais bon, ce n'est qu'une hypothèse. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF.dll : SendStringAsChars CTRL+V ne fonctionne pas! Dim 20 Oct 2013 - 11:10 | |
| C'est bien intéressant, tout ça, mais je me pose une question: qu'est-ce que fait cette discussion sur les couleurs d'une image dans le fil de discussion SendStringAsChars CTRL+V ne fonctionne pas! ? | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: KGF.dll : SendStringAsChars CTRL+V ne fonctionne pas! Dim 20 Oct 2013 - 11:12 | |
| Et la question est légitime Klaus, je crois que c'est encore un beau hors sujet !! | |
| | | Contenu sponsorisé
| Sujet: Re: KGF.dll : SendStringAsChars CTRL+V ne fonctionne pas! | |
| |
| | | | KGF.dll : SendStringAsChars CTRL+V ne fonctionne pas! | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |