Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour à toutes et tous,
voila mon problème qui j'espere trouvera réponse.
// création Object OLE
OLEObject myoleobject
string ls_flash_doc
myoleobject = CREATE OLEObject
// lancement internet explorer avec nom de la fenetre "Flash-doc"
li_rc = myoleobject.ConnectToNewObject("InternetExplorer.Application")
myoleobject.Navigate(ls_ComandLine,0,"Flash-Doc")
Jusque la pas de problème... une fenetre IE s'ouvre en arriere plan avec les bonnes information, si je relance cette fonction la mise à jour se fait sur la meme fenetre, (plutot content). Le souci c'est qu'a aucun moment la fenetre IE ne s'ouvre au 1er plan, toujours à l'arriere. Je suis parti dans les lymbes de PB et là j'avoue je commence à desesperer.
Ma question vous l'avez compris est la suivante : comment faire apparaitre ma fenetre IE en avant plan apres chaque lancement ?
Merci d'avance pour vos réponses (nombreuses ?)
Patrick
Hors ligne
la reponse se trouve peut etre la ...
http://www.rgagnon.com/pbdetails/pb-0202.html
Hors ligne
Merci pour la réponse mais j'ai fait des essais avec ces fonctionnalités...mais rien y fait ma fenetre clignote en arriere plan mais ne passe pas devant Pb
Patrick
Je cherche ...je cherche...
Hors ligne
en local external fonction :
FUNCTION BOOLEAN SetForegroundWindow( LONG HWND ) LIBRARY "USER32"
et pour l'appel, juste apres ton script :
SetForegroundWindow( myoleobject.HWND )
ca marche chez moi.
Hors ligne
Effectivement j'ai déclaré la global external function comme tu me l'as dit.
FUNCTION boolean SetForegroundWindow( long hWnd ) LIBRARY "USER32"
et mon code est le suivant :
OLEObject myoleobject
string ls_flash_doc
myoleobject = CREATE OLEObject
// lancement internet explorer avec nom de la fenetre "Flash-doc"
li_rc = myoleobject.ConnectToNewObject("InternetExplorer.Application")
myoleobject.Navigate(ls_ComandLine,0,"Flash-Doc")
SetForegroundWindow( myoleobject.HWND )
....
Mais rien y fait...
Hors ligne
erreur : local external function...pas global
Hors ligne
si ta window fenetre est declaré en 'SetPosition(TopMost!)', alors c'est normal..... il faut alors changer à ce niveau...voir la fonction setposition
Hors ligne
Il existe peut etre un parametre à passer avec le "myoleobject.Navigate(ls_ComandLine,0,"Flash-Doc")" qui permette de positionner la fenetre en avant non ?
Patrick
Hors ligne
j'ai essayé aussi avec la fonction w_windows_ouverte.SetPosition(NoTopMost!)...pareil...mais je pense que l'idée est bonne. A savoir aussi que la fenetre lancée dans Internet Explorer se positionne dans l'intranet sur un compte AD....(c'est un peu le binz en clair)
Patrick
Hors ligne
Bonjour, j'ai essayé de me passer de l'OLE par les commandes suivantes :
string ls_url
inet iinet_base
//
//
GetContextService("Internet", iinet_base)
iinet_base.HyperlinkToURL(ls_ComandLine)
cela marche tres bien mais j'ouvre une page internet à chaque fois....sans l'OLE est possible de savoir si une page IE est ouverte ?
Merci d'avance
Hors ligne
Bonjour,
Ce sera plus lisible pour le code PB (NB: ceci est aussi valable pour les autres langages: SQL, C++, etc...)
Hors ligne