FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Gestionnaire de Projets Panoramic
par Minibug Aujourd'hui à 2:10

» Mah-Jong européen new-look
par jjn4 Hier à 16:35

» Button_picture
par pascal10000 Hier à 11:41

» Pourquoi le compilateur stagne
par Minibug Hier à 11:09

» 4 (en analyse): SYNEDIT_TARGET_IS_OBJECT devient inactif
par Jack Hier à 10:09

» 3 (en analyse): Mauvaise interprétation du string "THEN"
par Jack Hier à 10:03

» KGF.dll - demandes ou suggestions de modifications ou ajouts
par Marc Hier à 10:00

» KGF_dll - nouvelles versions
par pascal10000 Mer 13 Déc 2017 - 17:27

» track_bar circulaire
par Klaus Mar 12 Déc 2017 - 13:54

» API Windows
par Klaus Mar 12 Déc 2017 - 3:21

» Cartes de voeux, menus, etc.
par JL35 Lun 11 Déc 2017 - 17:48

» a l'aide klaus
par Minibug Lun 11 Déc 2017 - 11:42

» bug SYNEDIT_TARGET_IS_OBJECT
par Jack Lun 11 Déc 2017 - 0:16

» Jukebox : Serge Reggiani
par papydall Sam 9 Déc 2017 - 5:58

» Ecouter la radio fm sur votre pc
par pascal10000 Sam 9 Déc 2017 - 3:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier

Partagez | 
 

 Click sur un objet externe a Panoramic

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : Précédent  1, 2, 3, 4
AuteurMessage
Klaus

avatar

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

MessageSujet: Re: Click sur un objet externe a Panoramic   Jeu 30 Oct 2014 - 4: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...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2413
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Click sur un objet externe a Panoramic   Jeu 30 Oct 2014 - 9: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... Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Minibug

avatar

Nombre de messages : 2413
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Click sur un objet externe a Panoramic   Jeu 30 Oct 2014 - 11: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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

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

MessageSujet: Re: Click sur un objet externe a Panoramic   Jeu 30 Oct 2014 - 12: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é !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: Click sur un objet externe a Panoramic   Jeu 30 Oct 2014 - 14: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2413
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Click sur un objet externe a Panoramic   Jeu 30 Oct 2014 - 15: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

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

MessageSujet: Re: Click sur un objet externe a Panoramic   Jeu 30 Oct 2014 - 15: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 ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2413
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Click sur un objet externe a Panoramic   Jeu 30 Oct 2014 - 15: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à !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

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

MessageSujet: Re: Click sur un objet externe a Panoramic   Jeu 30 Oct 2014 - 18: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: Click sur un objet externe a Panoramic   Jeu 30 Oct 2014 - 18: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2413
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Click sur un objet externe a Panoramic   Jeu 30 Oct 2014 - 19: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... drunken drunken
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

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

MessageSujet: Re: Click sur un objet externe a Panoramic   Jeu 30 Oct 2014 - 19: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.html
C'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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2413
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Click sur un objet externe a Panoramic   Jeu 30 Oct 2014 - 20: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

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

MessageSujet: Re: Click sur un objet externe a Panoramic   Jeu 30 Oct 2014 - 20: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: Click sur un objet externe a Panoramic   Ven 31 Oct 2014 - 3: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...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2413
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Click sur un objet externe a Panoramic   Ven 31 Oct 2014 - 13: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...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

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

MessageSujet: Re: Click sur un objet externe a Panoramic   Ven 31 Oct 2014 - 15: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...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2413
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Click sur un objet externe a Panoramic   Ven 31 Oct 2014 - 19:06

Bonsoir klaus

Merci pour toutes ces informations complémentaires.

Je vais voir ce que je peux faire avec tout ça.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

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

MessageSujet: Re: Click sur un objet externe a Panoramic   Ven 31 Oct 2014 - 20:14

Je viens d'installer VMware Player avec un XP virtualisé, et je commence à faire des essais avec Internet Explorer. On verra bien...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: Click sur un objet externe a Panoramic   Dim 2 Nov 2014 - 16: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2413
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Click sur un objet externe a Panoramic   Dim 2 Nov 2014 - 22: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...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Minibug

avatar

Nombre de messages : 2413
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Click sur un objet externe a Panoramic   Lun 3 Nov 2014 - 11: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Minibug

avatar

Nombre de messages : 2413
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Click sur un objet externe a Panoramic   Ven 14 Nov 2014 - 2: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...

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Contenu sponsorisé




MessageSujet: Re: Click sur un objet externe a Panoramic   

Revenir en haut Aller en bas
 
Click sur un objet externe a Panoramic
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 4 sur 4Aller à la page : Précédent  1, 2, 3, 4
 Sujets similaires
-
» Click sur un objet externe a Panoramic
» Ajout d'un nouveau type d'objet dans une form Panoramic !
» Passer un objet devant les autres (ou derrière)
» [Résolu] Disque dur externe
» Opération sur objet EDIT

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: