Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
Besoin d'aide !!!
Voilà mon problème :
J'ai 1 page web qui s'ouvre et se ferme automatiquement en même temps que mon appli pb. Jusqu'ici point de problème
SAUF QUE le fournisseur du site vient de migrer ses services et que le nom de la fenêtre n'est plus fixe.
Avant j'utilisais un truc du style
string ls_titre
ls_titre = "la fenetre que je cherche"
ll_ieHwnd = FindWindowA(ls_IEClass, ls_titre)
IF ll_ieHwnd > 0 THEN
lb_post = Post(ll_ieHwnd,WM_CLOSE, 0, 0)
exit
end if
maintenant on ne peut plus tester le nom de l'onglet actif puisqu'il est variable (si le site est actif évidemment).
Je cherche donc à récupérer l'url active dans IE (navigateur obligatoire pour cette page o_O)
un conseil de commande windows ou un truc pb ? c'est l'url que je veux pour vérifier si l'onglet actif correspond à ma recherche et du coup pouvoir fermer IE....
Me demandez pas pourquoi, parfois les utilisateurs ont une lubie ^^
merci pour vos réponses
Dernière modification par mmc_zen (17-10-2017 10:31:18)
Hors ligne
Salut,
si c'est IE tu peux utiliser shell.application
:
int i, c, r oleobject objShell, objAllWindows, ow objShell = create oleobject r = objShell.ConnectToNewObject("Shell.Application") objAllWindows = objShell.Windows c = objAllWindows.Count for i = 1 to c ow = objAllWindows.Item(i - 1) if ow.Name = 'Internet Explorer' then messagebox('test', string( ow.locationURL ) + "~r~n" + string( ow.Hwnd ) ) end if next objShell.DisconnectObject()
par contre ne fonctionne pas avec Edge.
Hors ligne
Merci pour ta réponse
en fait je ne cherche pas à fermer obligatoirement IE mais à le fermer si l'onglet actif contient une url commençant par "la racine de l'url recherchée
Je cherche donc une commande windows ou pb me permettant de récupérer l'url de l'onglet actif dans IE 11 (pas EDGE j'ai vérifié).
J'avoue ne pas avoir compris ton exemple car je n'utilise pas d'ole pour lancer IE mais
ShellExecuteA(handle (g_wi_w_gene), "open", "C:\\Program Files (x86)\\Internet Explorer\\iexplore.exe", ls_chaine, ls_null, 9)
si quelqu'un peut m'éclairer
Hors ligne
xlat a écrit:
Salut,
si c'est IE tu peux utilisershell.application
:Code: pb
int i, c, r oleobject objShell, objAllWindows, ow objShell = create oleobject r = objShell.ConnectToNewObject("Shell.Application") objAllWindows = objShell.Windows c = objAllWindows.Count for i = 1 to c ow = objAllWindows.Item(i - 1) if ow.Name = 'Internet Explorer' then messagebox('test', string( ow.locationURL ) + "~r~n" + string( ow.Hwnd ) ) end if next objShell.DisconnectObject()
par contre ne fonctionne pas avec Edge.
re,
j'ai enfin compris comment exploiter ton code en l'intégrant au mien pour permettre la fermeture d'IE!
MERCI BEAUCOUP
Hors ligne
Super !
Tu peux mettre le RÉSOLU dans le titre du poste.
Hors ligne
pour ceux qui pourraient être intéressés, j'ai ajouté ce petit bout de code pour forcer la fermeture d'IE (ouvert par un shellexecute dans mon appli) à la place du messagebox ^^
Constant uint WM_CLOSE = 16 Post(olew.Hwnd,WM_CLOSE, 0, 0)
bonne journée et encore merci!
Hors ligne