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 |
|
|
| Click sur un objet externe a Panoramic | |
| | |
Auteur | Message |
---|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Click sur un objet externe a Panoramic Jeu 30 Oct 2014 - 2:50 | |
| J'ai fait un peu de recherches. Si la virtualisation se fait par WMPlayer, alors il faut envoyer ctrl/G pour que le player accepte les entrées clavier et souris. J'ai modifié le petit programme pour faire cela: - Code:
-
' test_recuperer_texte_autre_programme.bas
label touche dim txt$, res%, hnd%, x%, y%, s$
caption 0,"Récupération de textes" on_key_down 0,touche
alpha 1 : top 1,10 :left 1,10 : caption 1,"X:" edit 11 : top 11,10 : left 11,30 : width 11,40 : inactive 11 alpha 2 : top 2,10 :left 2,100 : caption 2,"Y:" edit 12 : top 12,10 : left 12,130 : width 12,40 : inactive 12 alpha 3 : top 3,10 :left 3,200 : caption 3,"Objet:" edit 13 : top 13,10 : left 13,250 : width 13,80 : inactive 13
alpha 5 : top 5,40 : left 5,10 : caption 5,"ESC=localiser A=capturer B=Surligner+capturer C=(B) tout sauf pour IE D=(B) pour IE" memo 31 : top 31,70 : left 31,10 : width 31,400 : height 31,300 : bar_both 31 : inactive 31
dll_on "KGF.dll" ' res% = dll_call1("DebugKGF",2) : ' supprimer cette ligne après les tests !
end
touche: if key_down_code=27 : ' pour localiser la zone à capter res% = dll_call2("GetAbsoluteMousePosition",adr(x%),adr(y%)) hnd% = dll_call2("GetObjectUnderPosition",x%,y%) text 11,str$(x%) text 12,str$(y%) text 13,str$(hnd%) return end_if if key_down_code=65 : ' pour capter la zone localisée par ctrl/A - ctrl/C res% = dll_call2("AbsoluteMouseLeftClick",x%,y%) pause 100 : ' laisser le temps de l'affichage res% = dll_call5("SendSingleKey",hnd%,65,1,0,0) : ' ctrl/A res% = dll_call5("SendSingleKey",hnd%,67,1,0,0) : ' ctrl/C pause 200 : ' laisser le temps de la copie clear 31 item_add 31,clipboard_string_paste$ res% = dll_call1("BringWindowToForeground",handle(0)) return end_if if key_down_code=66 : ' pour capter la zone localisée par surligner - ctrl/C res% = dll_call2("AbsoluteMousePosition",x%,y%) pause 100 : ' laisser le temps de l'affichage res% = dll_call2("MouseHighlight",200,0) pause 100 : ' laisser le temps de l'affichage s$ = string$(3000," ") res% = dll_call5("SendSingleKey",hnd%,67,1,0,0) : ' ctrl/C clear 31 item_add 31,trim$(s$) res% = dll_call1("BringWindowToForeground",handle(0)) end_if : ' pour capter la zone localisée par surligner - copie spéciale IE if key_down_code=67 res% = dll_call1("BringWindowToForeground",hnd%) res% = dll_call2("AbsoluteMousePosition",x%,y%) pause 100 : ' laisser le temps de l'affichage res% = dll_call2("MouseHighlight",200,0) pause 100 : ' laisser le temps de l'affichage ' ligne suivante: envoyer ctrl/G pour forcer WMPlayer à accepter clavier eu souris res% = dll_call5("SendSingleKey",hnd%,71,1,0,0) : ' envoyer ctrl/G s$ = string$(3000," ") res% = dll_call3("GetSelectedText",x%,y%,adr(s$)) clear 31 item_add 31,trim$(s$) res% = dll_call1("BringWindowToForeground",handle(0)) end_if if key_down_code=68 res% = dll_call1("BringWindowToForeground",hnd%) res% = dll_call2("AbsoluteMousePosition",x%,y%) pause 100 : ' laisser le temps de l'affichage res% = dll_call2("MouseHighlight",200,0) pause 100 : ' laisser le temps de l'affichage s$ = string$(3000," ") res% = dll_call1("GetSelectedIEtext",adr(s$)) clear 31 item_add 31,trim$(s$) res% = dll_call1("BringWindowToForeground",handle(0)) end_if return
Ca se passe à ma ligne 62. Ca vaut le coup de le tenter... | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Click sur un objet externe a Panoramic Jeu 30 Oct 2014 - 7:50 | |
| tu veux surement parler de VMware Player mais j'ai compris le principe Ok je testerai tout a l'heure a boulot. Je vois que tu ne lâche pas l'affaire... | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Click sur un objet externe a Panoramic Jeu 30 Oct 2014 - 9:16 | |
| j'ai amélioré la lisibilité du programme et rendu automatique la saisie. Plus besoin d'appuyer sur ESC - Citation :
- ' test_recuperer_texte_autre_programme.bas
label touche dim txt$, res%, hnd%, x%, y%, s$
on_key_down 0,touche
caption 0,"Récupération de textes" alpha 1 : top 1,10 :left 1,10 : caption 1,"X:" edit 11 : top 11,10 : left 11,30 : width 11,40 : inactive 11 alpha 2 : top 2,10 :left 2,100 : caption 2,"Y:" edit 12 : top 12,10 : left 12,130 : width 12,40 : inactive 12 alpha 3 : top 3,10 :left 3,200 : caption 3,"Objet:" edit 13 : top 13,10 : left 13,250 : width 13,80 : inactive 13 alpha 5 : top 5,40 : left 5,10 : caption 5,"A=capturer B=Surligner+capturer C=(B) spécial VM D=(B) pour IE" memo 31 : top 31,70 : left 31,10 : width 31,400 : height 31,300 : bar_both 31 : inactive 31
dll_on "C:\COPCOL\configuration\KGF.dll" ' res% = dll_call1("DebugKGF",2) : ' supprimer cette ligne après les tests !
END
touche: res% = dll_call2("GetAbsoluteMousePosition",adr(x%),adr(y%)) hnd% = dll_call2("GetObjectUnderPosition",x%,y%) text 11,str$(x%) : text 12,str$(y%) : text 13,str$(hnd%) SELECT key_down_code CASE 65 : ' A / pour capter la zone localisée par ctrl/A - ctrl/C res% = dll_call2("AbsoluteMouseLeftClick",x%,y%) : pause 100 res% = dll_call5("SendSingleKey",hnd%,65,1,0,0) : ' ctrl/A res% = dll_call5("SendSingleKey",hnd%,67,1,0,0) : pause 200 : ' ctrl/C clear 31 : item_add 31,clipboard_string_paste$ CASE 66 : ' B / pour capter la zone localisée par surligner - ctrl/C res% = dll_call2("AbsoluteMousePosition",x%,y%) : pause 100 res% = dll_call1("BringWindowToForeground",hnd%) res% = dll_call2("MouseHighlight",200,0) : pause 100 : ' surlignage res% = dll_call5("SendSingleKey",hnd%,67,1,0,0) : pause 100 : ' ctrl/C clear 31 : item_add 31,clipboard_string_paste$ CASE 67 : ' C / pour capter la zone localisée par surligner - SPECIAL VM res% = dll_call1("BringWindowToForeground",hnd%) res% = dll_call2("AbsoluteMousePosition",x%,y%) : pause 100 res% = dll_call2("MouseHighlight",200,0) : pause 100 ' ligne suivante : envoyer ctrl/G pour forcer WMPlayer à accepter clavier eu souris res% = dll_call5("SendSingleKey",hnd%,71,1,0,0) : ' envoyer ctrl/G s$ = string$(3000," ") res% = dll_call3("GetSelectedText",x%,y%,adr(s$)) clear 31 : item_add 31,trim$(s$) CASE 68 : ' D / pour capter la zone localisée par surligner - SPECIAL IE res% = dll_call1("BringWindowToForeground",hnd%) res% = dll_call2("AbsoluteMousePosition",x%,y%) : pause 100 res% = dll_call2("MouseHighlight",200,0) : pause 100 s$ = string$(3000," ") res% = dll_call1("GetSelectedIEtext",adr(s$)) clear 31 : item_add 31,trim$(s$) END_SELECT res% = dll_call2("AbsoluteMousePosition",x%,y%) : pause 100 res% = dll_call1("BringWindowToForeground",handle(0)) RETURN | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Click sur un objet externe a Panoramic Jeu 30 Oct 2014 - 10:05 | |
| Bonne idée ! De mon côté, j'ai fait évoluer la fonction MouseHighlight en lui ajoutant le paramètre hnd%: - Code:
-
res% = dll_call3("MouseHighlight",hnd%,dx%,dy%) Tant que hnd%=0, ça fonctionne comme avant. Si tu passes le handle de l'objet, on positionne à (dx%,dy%) en absolu, puis on envoie shift/Fin pour surligner toute la ligne. Donc, le programme de test devient: - Code:
-
' test_recuperer_texte_autre_programme.bas
label touche dim txt$, res%, hnd%, x%, y%, s$
caption 0,"Récupération de textes" on_key_down 0,touche
alpha 1 : top 1,10 :left 1,10 : caption 1,"X:" edit 11 : top 11,10 : left 11,30 : width 11,40 : inactive 11 alpha 2 : top 2,10 :left 2,100 : caption 2,"Y:" edit 12 : top 12,10 : left 12,130 : width 12,40 : inactive 12 alpha 3 : top 3,10 :left 3,200 : caption 3,"Objet:" edit 13 : top 13,10 : left 13,250 : width 13,80 : inactive 13
alpha 5 : top 5,40 : left 5,10 : caption 5, "A=capturer B=Surligner+capturer C=(B) tout sauf pour IE D=(B) pour IE" memo 31 : top 31,70 : left 31,10 : width 31,400 : height 31,300 : bar_both 31 : inactive 31
dll_on "KGF.dll" ' res% = dll_call1("DebugKGF",2) : ' supprimer cette ligne après les tests !
end
touche: res% = dll_call2("GetAbsoluteMousePosition",adr(x%),adr(y%)) hnd% = dll_call2("GetObjectUnderPosition",x%,y%) text 11,str$(x%) text 12,str$(y%) text 13,str$(hnd%)
if key_down_code=65 : ' pour capter la zone localisée par ctrl/A - ctrl/C res% = dll_call2("AbsoluteMouseLeftClick",x%,y%) pause 100 : ' laisser le temps de l'affichage res% = dll_call5("SendSingleKey",hnd%,65,1,0,0) : ' ctrl/A res% = dll_call5("SendSingleKey",hnd%,67,1,0,0) : ' ctrl/C pause 200 : ' laisser le temps de la copie clear 31 item_add 31,clipboard_string_paste$ res% = dll_call1("BringWindowToForeground",handle(0)) return end_if if key_down_code=66 : ' pour capter la zone localisée par surligner - ctrl/C res% = dll_call2("AbsoluteMousePosition",x%,y%) pause 100 : ' laisser le temps de l'affichage res% = dll_call2("MouseHighlight",200,0) pause 100 : ' laisser le temps de l'affichage s$ = string$(3000," ") res% = dll_call5("SendSingleKey",hnd%,67,1,0,0) : ' ctrl/C clear 31 item_add 31,trim$(s$) res% = dll_call1("BringWindowToForeground",handle(0)) end_if : ' pour capter la zone localisée par surligner - copie spéciale IE if key_down_code=67 res% = dll_call1("BringWindowToForeground",hnd%) res% = dll_call2("AbsoluteMouseLeftClick",x%,y%) : ' pour activer la cible ' ligne suivante: envoyer ctrl/G pour forcer WMPlayer à accepter clavier eu souris res% = dll_call5("SendSingleKey",hnd%,71,1,0,0) : ' envoyer ctrl/G res% = dll_call3("MouseHighlight",hnd%,x%,y%) pause 100 : ' laisser le temps de l'affichage s$ = string$(3000," ") res% = dll_call3("GetSelectedText",x%,y%,adr(s$)) clear 31 item_add 31,trim$(s$) res% = dll_call1("BringWindowToForeground",handle(0)) end_if if key_down_code=68 res% = dll_call1("BringWindowToForeground",hnd%) res% = dll_call2("AbsoluteMousePosition",x%,y%) pause 100 : ' laisser le temps de l'affichage res% = dll_call2("MouseHighlight",200,0) pause 100 : ' laisser le temps de l'affichage s$ = string$(3000," ") res% = dll_call1("GetSelectedIEtext",adr(s$)) clear 31 item_add 31,trim$(s$) res% = dll_call1("BringWindowToForeground",handle(0)) end_if return
La nouvelle version de KGF.dll est sur le WebDav. EDIT Attends avant de charger cette version, il y a encore un problème !C'est corrigé ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Click sur un objet externe a Panoramic Jeu 30 Oct 2014 - 12:54 | |
| Voilà, Minibug. KGF.dll dans le WebDav est corrigée. Et ça va avec la version suivante du programme de test: - Code:
-
' test_recuperer_texte_autre_programme.bas
label touche dim txt$, res%, hnd%, x%, y%, s$
caption 0,"Récupération de textes" : height 0,300 on_key_down 0,touche
alpha 1 : top 1,10 :left 1,10 : caption 1,"X:" edit 11 : top 11,10 : left 11,30 : width 11,40 : inactive 11 alpha 2 : top 2,10 :left 2,100 : caption 2,"Y:" edit 12 : top 12,10 : left 12,130 : width 12,40 : inactive 12 alpha 3 : top 3,10 :left 3,200 : caption 3,"Objet:" edit 13 : top 13,10 : left 13,250 : width 13,80 : inactive 13
alpha 5 : top 5,40 : left 5,10 : caption 5, "B=Surligner 200 pixels+capturer C=surligner tout + capturer" memo 31 : top 31,70 : left 31,10 : width 31,500 : height 31,160 : inactive 31
dll_on "KGF.dll" ' res% = dll_call1("DebugKGF",2) : ' supprimer cette ligne après les tests !
end
touche:
res% = dll_call2("GetAbsoluteMousePosition",adr(x%),adr(y%)) hnd% = dll_call2("GetObjectUnderPosition",x%,y%) res% = dll_call1("BringWindowToForeground",hnd%) res% = dll_call2("AbsoluteMousePosition",x%,y%)
select scancode case 66 ' pour capter la zone localisée par surligner 200 pixels - ctrl/C ' ligne suivante: ctrl/G pour WMware Player: res% = dll_call5("SendSingleKey",hnd%,71,1,0,0) : ' ctrl/G pause 100 res% = dll_call3("MouseHighlight",0,200,0) pause 100 : ' laisser le temps de l'affichage s$ = string$(3000," ") res% = dll_call5("SendSingleKey",hnd%,67,1,0,0) : ' ctrl/C pause 100 clear 31 item_add 31,trim$(clipboard_string_paste$) res% = dll_call1("BringWindowToForeground",handle(0)) case 67 ' pour capter la zone localisée par surligner tout - ctrl/C ' ligne suivante: ctrl/G pour WMware Player: res% = dll_call5("SendSingleKey",hnd%,71,1,0,0) : ' ctrl/G pause 100 res% = dll_call3("MouseHighlight",hnd%,0,0) pause 100 : ' laisser le temps de l'affichage s$ = string$(3000," ") res% = dll_call5("SendSingleKey",hnd%,67,1,0,0) : ' ctrl/C pause 100 clear 31 item_add 31,trim$(clipboard_string_paste$) res% = dll_call1("BringWindowToForeground",handle(0)) end_select text 11,str$(x%) text 12,str$(y%) text 13,str$(hnd%) return Il n'y plus que les lettres B ou C à frapper, après avoir positionné le curseur dans la zone correspondante. B - prendre ce qui correspond aux 200 premiers pixels C - prendre à partir du curseur jusqu'à la fin de la zone Dans les deux cas, un envoie un ctrl/G avant la capture. CEla devrait permettre à WMware Player de capter la souris pour surligner, et pour un autre programme, c'est en principe transparent (cette ligne identifiée par un commentaire est facile à enlever). Maintenant, il peut y avoir un autre problème. Si WMware Player tourne dans une fenêtre qui n'est pas "full_space", les coordonnées absolues du curseur que j'utilise, doivent être modifiées par rapport à l'origine de la fenêtre de WMware Player. On va voir ce que ça donne. | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Click sur un objet externe a Panoramic Jeu 30 Oct 2014 - 13:11 | |
| Compte rendu de l'opération :
le programme fonctionne sans aucun bug ni dysfonctionnement. Ce qui prouve la stabilité de KGF.
Par contre aucun résultat avec SIEBEL. J'ai toujours le surlignage mais la commande CTRL + C ne retourne rien. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Click sur un objet externe a Panoramic Jeu 30 Oct 2014 - 13:15 | |
| Qu'est-ce que tu veux dire exactement par - Citation :
- la commande CTRL + C ne retourne rien
D'après ton message, le texte visé est bien surligné. Et la capture ne montre rien, que ce soit par la lettre B ou la lettre C ? C'est bien ça ? | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Click sur un objet externe a Panoramic Jeu 30 Oct 2014 - 13:23 | |
| Oui tout a fait ca Klaus.
L'appui sur B donne juste le surlignage et C ne donne rien.
Excuses moi, je n'ai pas été clair sur ce coup là ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Click sur un objet externe a Panoramic Jeu 30 Oct 2014 - 16:35 | |
| Bon, je suis de retour après quelques courses.
Surlignage présent - bien. Je pense que j'ai trouvé d'où vient le problème. D'ailleurs, as-tu essayé avec une fenêtre normal sous Internet Explorer ? Pour ma part, je teste avec les 3 zones de saisie de la fenêtre "nouveau message" de la messagerie interne du forum Panoramic, sous Internet Explorer.
Le problème vient bien entendu de WMware Player. As-tu essayé, après une tentative de capture montrant le surlignage, d'aller, dans Siebel, dans un champ de type EDIT ou MEMO, et d'y faire ctrl/V ? J'aimerais bien savoir si cela restitue le texte surligné, à l'intérieur de Siebel et donc à l'intérieur de WMware Player.
Car il y a bien deux presse-papier distincts: celui du Windows normal et celui de WMware player émulant un autre Windows. Je fais faire des recherches pour savoir comment on peut récupérer ce dernier. Mais fais stp le test ci-dessus - il est important de savoir si le presse-papier de WMware Player contient bien les bonnes données. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Click sur un objet externe a Panoramic Jeu 30 Oct 2014 - 16:45 | |
| Question complémentaire: est-ce que VMware Tools est installé ? Je suppose que non. Et tu n'as certainement pas la maîtrise. Je vais voir s'il y a un moyen de contourner cela. | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Click sur un objet externe a Panoramic Jeu 30 Oct 2014 - 17:10 | |
| Bonsoir Klaus, Concernant SIEBEL et la VM : LE CTRL + V ne donne rien de plus. J'explique, lorsque je lance ton petit programme, - touche B , surlignage mais rien en retour dans l'edit de ton programme - touche B , surlignage et CTRL + V dans un champ SIEBEL ne colle que la mémorisation antérieur au test. - touche C , pas de surlignage et rien en retour dans l'edit de ton programme - touche C , Pas de surlignage et CTRL + V dans un champ SIEBEL ne colle que la mémorisation antérieur au test. Concernant les autres editeurs , explorer ou programmes : - touche B , surlignage et retour correct dans l'edit de ton programme. Le copier coller fonctionne parfaitement - touche C , Pas de surlignage et CTRL + V dans un champ SIEBEL ne colle que la mémorisation antérieur au test. Cependant, en appuyant rapidement sur la touche C et seulement cette touche, je réussi a copier certaines portions de texte de manière aliétoire au niveau de la portion (1, 2 , 3 ,5 ou + caracteres) En appuyant rapidement sur la touche C sous SIEBEL, je réussi a avoir un surlignage mais aucun resultat en sortie sur l'edit de panoramic hormis la mémorisation antérieur au test. J'espere que tout cela est clair... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Click sur un objet externe a Panoramic Jeu 30 Oct 2014 - 17:30 | |
| Oui, c'est clair. Tout d'abord, en essayant dans Internet Explorer, comme je l'ai dit, dans la page "Nouveau message" de la messagerie interne de Panoramic, est-ce que tu peux capter les 3 champs (identifiant, sujet et texte) avec les deux touches B et C ? B ne capture que les 200 premiers pixels, C capture à partir de la position du curseur jusqu'à la fin de la ligne. Ca au moins, chez moi, ça marche parfaitement. Ensuite, en ce qui concerne Siebel, les nouvelles ne sont pas bonnes. En fait, le problème n'est pas Siebel. Le problème est VMware Player. Pour pouvoir accéder au presse-papier, il faut avoir installé obligatoirement VMware tools (petit et gratuit), et ensuite configurer le presse-papier en bidirectionnel dans le panneau de configuration de VMware Player, comme ceci: Ensuite, ça marchera sans problème. Et VMware Tools se télécharge ici: https://www.vmware.com/support/ws5/doc/new_guest_tools_ws.htmlC'est la page générale. Il faudra suivre le lien vers le système virtualisé qui te concerne. Il y en a plusieurs: VMware Tools for Windows Guests VMware Tools for Linux Guests VMware Tools for FreeBSD Guests Installing VMware Tools in a NetWare Virtual Machine Suivre un des liens, télécharger le produit et installer en suivant le mode d'emploi, configurer l'option presse-papier bidirectionnel comme ci-dessus et rebouter le système virtualisé. Malheureusement, su tu n'as pas la possibilité d'installer VMware Tools dans le système virtualisé, il n'y a aucun moyen de sortir des informations par le presse-papier, quand bien même le surlignage s'est fait correctement. C'est une mesure de sécurité faite par MicroSoft, et qui concerne tous les systèmes virtualisés avec VMware Player | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Click sur un objet externe a Panoramic Jeu 30 Oct 2014 - 18:29 | |
| Merci pour ces infos Klaus, mais comme je te disais hier, ce n'est pas nous ici qui gérons la VM.
Je vais donc rester sur mon idée de secours qui permettra le copier coller quand même. Même si cela reste approximatif ce sera mieux que rien.
Merci pour tout ce temps passé et si toutefois il y a du nouveau j'en informerai le forum...
Merci Klaus.
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Click sur un objet externe a Panoramic Jeu 30 Oct 2014 - 18:42 | |
| De rien, Minibug. Ce type d'information peut être utile pour certains. En tout cas, ça m'a appris un certain nombre de choses, et rien que pour ça, cela a été utile. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Click sur un objet externe a Panoramic Ven 31 Oct 2014 - 1:54 | |
| Petite question: est-ce que sous Siebel, tu peux tabler ctrl/S (Enregister sous) et enregister la page sous forme *.TXT ? Est-ce que tu peux exporter un fichier *.TXT vers le système où tourne ton programme Panoramic ? Dans ce cas, tu pourrais y arriver comme ça - en obtenant une copie texte de ta page, puis la décortiquer. Localement, avec Internet Explorer, je peux faire ça...
EDIT
Si ton VMware Player est configuré avec un dossier partagé, tu peux choisir ce dossier pour "Enregistrer sous", et le tour est joué. Sinon, tu peux peut-être envoyer ce fichier par mail, à partir de VMware Player, sur une adresse que tu peux exploiter là où est ton programme Panoramic. Tout ça, ce sont des pistes à vérifier... | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Click sur un objet externe a Panoramic Ven 31 Oct 2014 - 11:22 | |
| Bonjour Klaus et Bonjour a tous ! Concernant le CTRL+S il déclenche une fonction propriétaire dans la base SIEBEL. De plus aucun export n'est possible. C'est la première chose que j'ai regardé lorsque SIEBEL a été installé. Pour le mail, j'ai bien l'option mais pas de possibilité d'envoyé les champs de la base. C'est juste l'envoi d'un mail 'classique'. Je te remercie pour ces pistes mais mes collègues et moi nous sommes déjà penché sur ces possibilités. Non franchement, je pense avoir épuisé toutes les solutions possibles. Je vais juste continuer dans mon idée du copier coller semi automatique. Juste une question Klaus : Concernant un CTRL+C sur un champ vide (""), il me semble que le clipboard n'en tient pas compte et ne prends rien. Je t'explique par l'exemple ci-dessous : - Citation :
- x%=VAL(MID$(GRID_READ$(4,n%,1),6,4)) : y%=VAL(MID$(GRID_READ$(4,n%,1),17,4))
hnd% = dll_call2("GetObjectUnderPosition",x%,y%) : PAUSE 100 res% = dll_call1("BringWindowToForeground",hnd%) : PAUSE 100 res% = dll_call2("AbsoluteMousePosition",x%,y%) : PAUSE 100 s$="---------" : CLIPBOARD_STRING_COPY s$ : PAUSE 100 res% = dll_call3("MouseHighlight",0,300,0) WHILE s$="---------" s$=CLIPBOARD_STRING_PASTE$ PAUSE 100 END_WHILE res% = dll_call1("BringWindowToForeground",handle(0)) TEXT n%+24,CLIPBOARD_STRING_PASTE$ J'ai placé le tout dans une boucle qui permet de surligner les champs au fur et a mesure de façon auto. En me plaçant sur SIEBEL, je fais un CTRL+C manuel et cela copie automatiquement le champ et passe au suivant. Par contre si le champ est vide, le CTRL+C n'a a priori aucun effet. Pourrai tu me confirmer ? Si ma déduction est bonne, la seconde question est : Est il possible de détecter par panoramic, l'appui d'une touche d'un programme externe ? Puisque pour l'instant je me base juste sur le retour du clipboard. SI cela est possible, je pourrai par exemple passer au champ suivant lorsque l'appui sur C sera détecté , et je n'aurai plus de problème de champ vide. A moins que quelqu'un a une autre idée... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Click sur un objet externe a Panoramic Ven 31 Oct 2014 - 13:03 | |
| - Citation :
- Par contre si le champ est vide, le CTRL+C n'a a priori aucun effet. Pourrai tu me confirmer ?
Exact. Tu peux le vérifier dans Panoramic_Editor: mets une ligne en mémoire, puis fais ctrl/C sans avoir sélectionné un texte, puis fais ctrl/V ==> ta ligne mémorisée revient, le presse-papier n'a pas été effacé. - Citation :
- Est il possible de détecter par panoramic, l'appui d'une touche d'un programme externe ?
C'est possible, bien que délicat, sur un programme tournant sur le même système, en établissant un "keyboard hook". Mais c'est impossible de faire cela sur un programme tournant en virtualisation. - Citation :
- De plus aucun export n'est possible.
Tu devrais pouvoir déclencher la fonction "Enregistrer sous" de Internet Explorer. Ceci est totalement indépendant de Siebel. Si ctrl/F est capté par Siebel, tu peux le faire par alt/F suivi de alt/E. Tu obtiens le dialogue d'enregistrement. Il faut choisir le format de sortie "texte". - Citation :
- C'est juste l'envoi d'un mail 'classique'.
Et c'est exactement ce qu'il faut pour t'envoyer le fichier résultant de "Enregistrer sous" du paragraphe précédent... | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Click sur un objet externe a Panoramic Ven 31 Oct 2014 - 17:06 | |
| Bonsoir klaus
Merci pour toutes ces informations complémentaires.
Je vais voir ce que je peux faire avec tout ça. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Click sur un objet externe a Panoramic Ven 31 Oct 2014 - 18:14 | |
| Je viens d'installer VMware Player avec un XP virtualisé, et je commence à faire des essais avec Internet Explorer. On verra bien... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Click sur un objet externe a Panoramic Dim 2 Nov 2014 - 14:00 | |
| Je suis arrivé à quelque chose avec mon VMware Player chez moi. Pourrais-tu essayer à nouveau ? Il faut prendre KGF.dll sur le WebDav (nouvelle version V3.83 de ce jour) et ce programme de démo: - Code:
-
' test_recuperer_texte_autre_programme.bas
label touche dim txt$, res%, hnd%, x%, y%, s$, sc%, xvm%, yvm%, hndvm%, hndvm0% dim gauche%,haut%,largeur%,hauteur%, l%,t%,w%,h%, l1%,t1% dim exe$ : exe$ = "vmplayer.exe"
caption 0,"Récupération de textes" : height 0,330 : width 0,800 on_key_up 0,touche
alpha 1 : top 1,10 :left 1,10 : caption 1,"X:" edit 11 : top 11,10 : left 11,30 : width 11,40 : inactive 11 alpha 2 : top 2,10 :left 2,90 : caption 2,"Y:" edit 12 : top 12,10 : left 12,110 : width 12,40 : inactive 12 alpha 3 : top 3,10 :left 3,170 : caption 3,"Objet:" edit 13 : top 13,10 : left 13,210 : width 13,80 : inactive 13
alpha 9 : top 9,30 :left 9,170 : caption 9,"VMware:" edit 19 : top 19,30 : left 19,210 : width 19,80 : inactive 19
alpha 4 : top 4,10 :left 4,310 : caption 4,"TX:" edit 14 : top 14,10 : left 14,340 : width 14,40 : inactive 14 alpha 5 : top 5,10 :left 5,400 : caption 5,"TY:" edit 15 : top 15,10 : left 15,430 : width 15,40 : inactive 15
alpha 6 : top 6,10 :left 6,500 : caption 6,"LX:" edit 16 : top 16,10 : left 16,530 : width 16,90 : inactive 16 alpha 7 : top 7,10 :left 7,630 : caption 7,"HY:" edit 17 : top 17,10 : left 17,660 : width 17,90 : inactive 17
alpha 8 : top 8,30 : left 8,600 : caption 8,"Distance:" edit 18 : top 18,30 : left 18,660 : width 18,90 : inactive 18
alpha 30 : top 30,70 : left 30,10 : caption 30, "A=identifier WMvare Player B=Surligner 100 pixels+capturer C=surligner tout + capturer" memo 31 : top 31,90 : left 31,10 : width 31,500 : height 31,160 : inactive 31
dll_on "KGF.dll" ' res% = dll_call1("DebugKGF",2) : ' supprimer cette ligne après les tests !
' end
repeat sc% = scancode caption 0,str$(sc%) : pause 10 until sc%=0 caption 0,"prêt" end
touche:
sc% = scancode caption 0,str$(sc%)
select sc% case 65 : ' "A" identifier VMware plauer ' pour identifier la fenêtre VMware hndvm0% = DLL_call1("GetProcessWindowHandle",adr(exe$)) if hndvm0%=0 message "VMware Player n'est pas en route." else hndvm% = dll_call2("GetProcessChildWindowHandle",hndvm0%,handle(31)) text 19,str$(hndvm%) identifier() end_if case 66 : ' "B" fenêtre VMware player res% = dll_call2("GetAbsoluteMousePosition",adr(x%),adr(y%)) hnd% = dll_call2("GetObjectUnderPosition",x%,y%) identifier() res% = dll_call2("WindowTopMost",handle(0),0) res% = dll_call1("BringWindowToForeground",hnd%) pause 100 ' pour capter la zone localisée par surligner 100 pixels - ctrl/C res% = dll_call2("AbsoluteMouseLeftClick",x%,y%) : ' x%-l1%,y%-t1%) pause 500 res% = dll_call3("MouseHighlight",0,100,0) pause 300 : ' laisser le temps de l'affichage s$ = string$(3000," ") res% = dll_call5("SendSingleKey",hnd%,67,1,0,0) : ' ctrl/C pause 800 if hnd%=hndvm% : ' cas du VMware Player res% = dll_call1("SendCtrlAlt",hnd%) : ' ctrl/alt pause 200 res% = DLL_call2("WindowTopMost",hnd%,0) end_if clear 31 item_add 31,trim$(clipboard_string_paste$) res% = dll_call2("WindowTopMost",handle(0),1) res% = dll_call2("AbsoluteMouseLeftClick",left(0)+50,top(0)+10) res% = dll_call2("AbsoluteMousePosition",x%,y%) case 67 : ' "C" fenêtre VMware player res% = dll_call2("GetAbsoluteMousePosition",adr(x%),adr(y%)) hnd% = dll_call2("GetObjectUnderPosition",x%,y%) identifier() res% = dll_call1("BringWindowToForeground",hnd%) ' pour capter la zone localisée par surligner tout - ctrl/C res% = dll_call2("AbsoluteMouseLeftClick",x%,y%) pause 500 if hnd%=hndvm% res% = dll_call2("AbsoluteMouseLeftClick",x%,y%) pause 200 end_if res% = dll_call3("MouseHighlight",hnd%,0,0) pause 100 : ' laisser le temps de l'affichage s$ = string$(3000," ") res% = dll_call5("SendSingleKey",hnd%,67,1,0,0) : ' ctrl/C pause 100 if hnd%=hndvm% : ' cas du VMware Player res% = dll_call1("SendCtrlAlt",hnd%) : ' ctrl/alt pause 200 res% = DLL_call2("WindowTopMost",hndvm0%,0) end_if clear 31 item_add 31,trim$(clipboard_string_paste$) res% = dll_call2("WindowTopMost",handle(0),1) res% = dll_call2("AbsoluteMouseLeftClick",left(0)+50,top(0)+10) res% = dll_call2("AbsoluteMousePosition",x%,y%) end_select return sub identifier() text 11,str$(x%) text 12,str$(y%) text 13,str$(hnd%) res% = DLL_call5("GetFormMetrics",hnd%,adr(gauche%),adr(haut%),adr(largeur%),adr(hauteur%)) text 14,str$(gauche%) text 15,str$(haut%) text 16,str$(largeur%) text 17,str$(hauteur%) res% = dll_call5("GetWindowClientRect",hnd%,adr(l%),adr(t%),adr(w%),adr(h%)) l1% = gauche% + (largeur%-l%)/2 t1% = haut% + hauteur%-h%-(largeur%-l%)/2 xvm% = gauche% yvm% = haut% end_sub
Les touches B et C fonctionnent directement, sur n'importe quel programme Windows. pour VMware Player, il faut utiliser la touche A (la position du curseur n'a aucune importance à ce moment). Ensuite, les touches B et C devraient fonctionner également sur Internet Explorer dans WMvare Player. Donc, essaie d'abord sur une page Internet Explorer autre que Siebel, juste pour vérifier le lien avec VMware Player. Et si ça marche, tu peux tenter avec Siebel. | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Click sur un objet externe a Panoramic Dim 2 Nov 2014 - 20:20 | |
| bonsoir Klaus.
Je vais regarder cela. Par contre pour SIEBEL se sera pour dans une semaine car je suis en vacances toute la semaine.
Bon, je regarde ton petit programme. peut être a tout a l'heure... | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Click sur un objet externe a Panoramic Lun 3 Nov 2014 - 9:16 | |
| Bonjour a tous !
Klaus, ton petit programme fonctionne parfaitement dans l'éditeur Panoramic. Par contre pour internet explorer, voici le compte rendu :
Dans le forum Panoramic: Avec la touche B, le curseur de la souris se déplace mais pas de surlignage et le résultat affiché dans le programme est l'historique du clipboard (Copier-coller resté en mémoire)
Avec la touche C : - Dans un édit de création de message c'est parfait. - Sur le titre 'FORUM DE DISCUTION...' ca me fait descendre jusqu'en bas de la page sans rien coller dans le programme. Pareil sur un message existant. Pas de surlignage visible.
Et la touche A détecte bien que je n'utilise pas WMwarePlayer puisque je suis chez moi et donc pas de VM. | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Click sur un objet externe a Panoramic Ven 14 Nov 2014 - 0:13 | |
| Bonsoir a tous ! Comme je te l'avais promis Klaus, je reviens ici pour te donner des infos. Petit rappel pour ceux qui prennent le train en route : Le but est l'importation des données depuis une base SIEBEL sur une machine virtuel dans une fenêtre internet explorer. le tout limitant l'action des touches et du copier-coller. J'ai donc retenu la saisie semi automatique. voici le petit code : - Code:
-
FOR n%=1 to 20 x%=VAL(MID$(GRID_READ$(4,n%,1),6,4)) : y%=VAL(MID$(GRID_READ$(4,n%,1),17,4)) hnd% = dll_call2("GetObjectUnderPosition",x%,y%) : PAUSE 100 res% = dll_call1("BringWindowToForeground",hnd%) : PAUSE 100 res% = dll_call2("AbsoluteMousePosition",x%,y%) : PAUSE 100 s$="---------" : CLIPBOARD_STRING_COPY s$ : PAUSE 100 res% = dll_call3("MouseHighlight",0,300,0) PAUSE 2000 s$=CLIPBOARD_STRING_PASTE$ res% = dll_call1("BringWindowToForeground",handle(0)) TEXT n%+24,CLIPBOARD_STRING_PASTE$ NEXT n% Explication et décryptage : J'ai 20 champs a imports. j'ai mis leurs positions dans un tableau (Grid 4) Ensuite la souris se positionne sur le champs indiqué ("GetObjectUnderPosition",x%,y%) une selection de 300 pixels sur la droite se fait en automatique ("MouseHighlight",0,300,0) je laisse 2 secondes pour effectué un CTRL+C pour copier le champs dans le clipboard ensuite l'importation est effectué de manière automatique. et on recommence pour les 19 autres champs. En résumé, la souris se positionne sur le champs, sélectionne automatiquement les données. un CTRL+C manuel permet la copie et au bout des 2 secondes l'envoi se fait vers l'édit panoramic. Il suffit dont de garder en main le CTRL+C et répéter 20 fois l'opération d'où l'appellation saisie semi automatique. Un grand merci a toi Klaus car cela me permet de réaliser cette opération en panoramic. plus besoin d'autres logiciels. Même si le résultat est partiel, ca va me faciliter la vie. Peut être que le principe pourra servir a d'autres personnes et d'autres usages... | |
| | | Contenu sponsorisé
| Sujet: Re: Click sur un objet externe a Panoramic | |
| |
| | | | Click sur un objet externe a Panoramic | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |