Accueil > > > RÉCUPÉRATION DE L'URL COURANTE DANS INTERNET EXPLORER
RÉCUPÉRATION DE L'URL COURANTE DANS INTERNET EXPLORER
Information sur la source
Description
Bonjour à tous, Ce petit code permet de récupérer l'URL de la page web courante dans Internet Explorer. Plus précisément, il récupère le texte de l'Edit de la barre d'adresses grâce à l'API FindWindowEx(). Pour connaître en détail la hiérarchie de composants graphiques d'une application, 2 solutions: - Spy++, présent dans le répertoire de Visual Studio - Windowse, freeware accessible à l'adresse suivante: http://www.greatis.com/delphicb/windowse/ 3 remarques: - code compatible IE seulement - dans le cas de plusieurs instances IE, seule celle avec le focus est prise en compte - idem dans le cas des onglets, seul celui qui a le focus est pris en compte
Source
- #include <Windows.h>
- #include <stdio.h>
-
-
- // Fonction qui récupère l'URL courante d'Internet Explorer
- char * GetCurrentURLFromIE(void)
- {
- HWND hWnd,hWnd2,hWnd3; // Handles de fenêtre
- DWORD size; // Taille URL
- char * pURL=NULL; // Buffer de sortie
-
- // Récupération du handle de la fenêtre de IE
- hWnd = FindWindow("IEFrame",NULL);
- if (hWnd)
- {
- // Parcours de la hiérarchie de classes (merci Spy++) pour trouver l'Edit contenant l'URL
- hWnd=FindWindowEx(hWnd,0,"WorkerW",NULL); // Fenêtre de travail
- hWnd=FindWindowEx(hWnd,0,"ReBarWindow32",NULL); // Toolbar
- hWnd2=FindWindowEx(hWnd,0,"Address Band Root",NULL); // Bandeau, IE 7
- if(hWnd2)
- hWnd=hWnd2;
- hWnd3=FindWindowEx(hWnd,0,"ComboBoxEx32",NULL); // Combo Box Entendue, pas sous IE8
- if(hWnd3)
- hWnd=hWnd3;
- hWnd3=FindWindowEx(hWnd,0,"ComboBox",NULL); // Combo Box, pas sous IE8
- if(hWnd3)
- hWnd=hWnd3;
- hWnd=FindWindowEx(hWnd,0,"Edit",NULL); // Edit contenant l'URL
-
- // Récupération de la taille de la chaine et allocation du buffer en conséquence
- size=SendMessage(hWnd,WM_GETTEXTLENGTH,0,0);
- pURL=(char *)malloc(size+1);
-
- // Get de l'URL
- SendMessage(hWnd,WM_GETTEXT,size+1,(DWORD)pURL);
- }
-
- return pURL;
- }
-
-
- int main(int argc, char *argv[])
- {
- char lastURL[MAX_PATH]; // Dernière URL visitée
- char * pURL=NULL; // URL courante
-
- while (1)
- {
- // Récupération de l'URL courante dans IE
- pURL=GetCurrentURLFromIE();
-
- // Si changement, affichage et stockage de l'URL
- if (pURL!=NULL && stricmp(lastURL,pURL))
- {
- strcpy(lastURL,pURL);
- printf("URL: %s\n",pURL);
- }
-
- free(pURL);
- Sleep(500);
- }
-
- return 0;
- }
#include <Windows.h>
#include <stdio.h>
// Fonction qui récupère l'URL courante d'Internet Explorer
char * GetCurrentURLFromIE(void)
{
HWND hWnd,hWnd2,hWnd3; // Handles de fenêtre
DWORD size; // Taille URL
char * pURL=NULL; // Buffer de sortie
// Récupération du handle de la fenêtre de IE
hWnd = FindWindow("IEFrame",NULL);
if (hWnd)
{
// Parcours de la hiérarchie de classes (merci Spy++) pour trouver l'Edit contenant l'URL
hWnd=FindWindowEx(hWnd,0,"WorkerW",NULL); // Fenêtre de travail
hWnd=FindWindowEx(hWnd,0,"ReBarWindow32",NULL); // Toolbar
hWnd2=FindWindowEx(hWnd,0,"Address Band Root",NULL); // Bandeau, IE 7
if(hWnd2)
hWnd=hWnd2;
hWnd3=FindWindowEx(hWnd,0,"ComboBoxEx32",NULL); // Combo Box Entendue, pas sous IE8
if(hWnd3)
hWnd=hWnd3;
hWnd3=FindWindowEx(hWnd,0,"ComboBox",NULL); // Combo Box, pas sous IE8
if(hWnd3)
hWnd=hWnd3;
hWnd=FindWindowEx(hWnd,0,"Edit",NULL); // Edit contenant l'URL
// Récupération de la taille de la chaine et allocation du buffer en conséquence
size=SendMessage(hWnd,WM_GETTEXTLENGTH,0,0);
pURL=(char *)malloc(size+1);
// Get de l'URL
SendMessage(hWnd,WM_GETTEXT,size+1,(DWORD)pURL);
}
return pURL;
}
int main(int argc, char *argv[])
{
char lastURL[MAX_PATH]; // Dernière URL visitée
char * pURL=NULL; // URL courante
while (1)
{
// Récupération de l'URL courante dans IE
pURL=GetCurrentURLFromIE();
// Si changement, affichage et stockage de l'URL
if (pURL!=NULL && stricmp(lastURL,pURL))
{
strcpy(lastURL,pURL);
printf("URL: %s\n",pURL);
}
free(pURL);
Sleep(500);
}
return 0;
}
Conclusion
Testé sous IE 5.x, IE 6, IE 7, IE 8
Historique
- 09 décembre 2008 14:33:45 :
- Correction de fuites mémoire
- 08 février 2010 17:14:50 :
- - Bug Fix: récupération de l'URL complète (il manquait le dernier caractère)
- Ajout de la compatibilité IE8, thanks to zod331
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Intercepter l'appel d'un API [ par sebastienbro ]
Bonjour,j'aurais voulus savoir s'il était possible d'intercepter l'appel d'un api, un peu comme un breakpoint dans softice, ou dans n'importe quel déb
modifier l'url d'une fenetre ie déjà ouverte [ par hrp ]
bonjour,comment puis-je modifier l'url d'une fenetre internet explorer en cours d'exécution afin de la rediriger sur une autre url?merci.huw
API Win32, Aide [ par ElendilAranwe ]
Bonjour à tous, j'ai un problème au niveau de l'utilisation de l'API, dans un programme que j'ai voulu le plus simple possible, pour apprendre les bas
Url Valide ? : Api IsValidURL [ par Sylvainlefou ]
Bonjour,j'aimerais tester la validité d'une URL grave a l'api IsValidURL.En entré, j'ai une variable "char[50]", or l'api demande une variable "const
SNMP [ par andrealphus ]
Est ce que quelqu'un saurait me dire comment dialoguer avec un agent snmp en c++ voire si possible en java ???Merci d'avance.Un revenant...4ndr&@lphu$
Problème avec GetWindowTextLenght [ par oceax ]
Bonjour !!Voilà je suis débutant en c++ et je voudrais me familiariser avec l'utilisation de l'allocation dynamique de la mémoire. Pour mon projet j'a
taille barre des taches [ par julienbj ]
Comment peut-on faire pour récupérer la taille de la barre des taches?Petite précision: je travaille en C, sans les MFC!Vive le CTchaoSavon
Release sous Dev-C++ [ par victorcoasne ]
Bonjour,Je compile sous Dev-c++ et on me dis que je fais nimporte quoi car j'inclu les info de debug avec donc j'aimerais savoir comment compiler sans
Une barre d'outils flottante en api [ par elflink ]
Bonjour à tous, à toutes,Voici une question à laquelle je n'ai pas trouvé de réponse :Comment créer une barre d'outils flottante (qu'on peut déplacer
Récuperer la valeur de la variable passé via l'url d'une page web [ par thunderfear ]
Bonjour,en fait j'aimerai faire un programme ki est tout le temps ouvert sur le pc et k'il attend de recevoir une info mais il doit vérifier s'il y a
|
Derniers Blogs
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|