IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

[C ou C++]Comment récupérer l'url provenant d'un browser ?


Sujet :

Windows

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 101
    Points : 59
    Points
    59
    Par défaut [C ou C++]Comment récupérer l'url provenant d'un browser ?
    Bonsoir à tous ,

    Je cherche à savoir, comment récupérer l'url provenant d'un broswer qui a le focus. Je suis vraiment bloqué, la seul chose que j'arrive à faire c'est récupérer le titre de la fenêtre du broswer .
    Je développe sous Visual C++ V6.
    Si quelqu'un peut m'aider .

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Août 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 190
    Points : 179
    Points
    179
    Par défaut
    Bonjour,

    Je te propose cette méthode, malheureusement elle n'est valable que pour Internent Explorer (voir peut être uniquement sur Windows XP).

    Tu peux adapter ce code pour d'autres browsers en t'aidant de Winspector Spy qui te permettra de trouver les différents CLassName.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
      //Handle de la fenêtre Internent Explorer
      HANDLE IEHandle;
      IEHandle = FindWindow("IEFrame",NULL);
      if (!IEHandle)
        return;
    
      //Handle de la fenêtre de travail
      HANDLE IEWorkerHandle;
      IEWorkerHandle = FindWindowEx(IEHandle,NULL,"WorkerW",NULL);
      if (!IEWorkerHandle)
        return;
    
      //Handle de la ToolBar
      HANDLE IEBarHandle;
      IEBarHandle = FindWindowEx(IEWorkerHandle,NULL,"ReBarWindow32",NULL);
      if (!IEBarHandle)
        return;
    
      //Handle du ComboBox
      HANDLE IEComboHandle;
      IEComboHandle = FindWindowEx(IEBarHandle,NULL,"ComboBoxEx32",NULL);
      if (!IEComboHandle)
        return;
    
      HANDLE IEComboChildHandle;
      IEComboChildHandle = FindWindowEx(IEComboHandle,NULL,"ComboBox",NULL);
      if (!IEComboChildHandle)
        return;
    
      //Handle de l'Edit du ComboBox
      HANDLE IEComboEditHandle;
      IEComboEditHandle = FindWindowEx(IEComboChildHandle,NULL,"Edit",NULL);
      if (!IEComboEditHandle)
        return;
    
      //Recupère l'adresse URL
    
      #define MAXTEXTLENGHT 1024
    
      char BrowserCBText[MAXTEXTLENGHT];
      memset(&BrowserCBText,0,MAXTEXTLENGHT);
    
      int EditLenght;
      EditLenght = SendMessage(IEComboEditHandle,WM_GETTEXTLENGTH,0,0);
    
      if (EditLenght>MAXTEXTLENGHT)
        return;
    
      if (SendMessage(IEComboEditHandle,WM_GETTEXT,MAXTEXTLENGHT,int(&BrowserCBText)) > 0){
        //Ok, tu as l'adresse URL
      }
    Cordialement,

    Benjamin

  3. #3
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Je pense que tu auras plus de chance de faire un truc "portable à toutes les versions d'IE" en accédant à IE avec COM/OLE...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 101
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par Grosbenji Voir le message
    Bonjour,

    Je te propose cette méthode, malheureusement elle n'est valable que pour Internent Explorer (voir peut être uniquement sur Windows XP).

    Tu peux adapter ce code pour d'autres browsers en t'aidant de Winspector Spy qui te permettra de trouver les différents CLassName.
    Cordialement,

    Benjamin
    Un grand merci "Benjamin" pour se code source avec ce super logiciel.

    J'ai légèrement modifier ton code source, je pense qu'il n'est pas nécessaire de descendre aussi bas dans les class name pour récupérer l'url.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    31
    32
    33
    34
    char Browser()
    {	
    	HWND broser_IE		= FindWindow("IEFrame",NULL); 
    	HWND broser_Mozilla	= FindWindow("MozillaUIWindowClass",NULL); 
    	HWND hFore			= GetForegroundWindow();
    
    	if((broser_IE == hFore))
    	{
    		//	Handle de la fenêtre de travail
    		HWND IEWorkerHandle;
    		IEWorkerHandle = FindWindowEx(hFore,NULL,"WorkerW",NULL);
    		
    		HWND IEBarHandle;
    		IEBarHandle = FindWindowEx(IEWorkerHandle,NULL,"ReBarWindow32",NULL);
    
    		HWND IEComboHandle;
    		IEComboHandle = FindWindowEx(IEBarHandle,NULL,"ComboBoxEx32",NULL);
    		
    		long EditLenght = SendMessage(IEComboHandle,WM_GETTEXTLENGTH,0,0); 
    		
    		if(EditLenght) 
    	SendMessage(IEComboHandle,WM_GETTEXT,++EditLenght,(int)&url);
    		
                    return 1;
    	}
    	else if(broser_Mozilla == hFore)
    	{
    		GetWindowText(hFore,url,MAXTEXTLENGHT);
    		return 2;
    	}
    	else
    		return -1;
    }
    Par contre Winspector ne donne pas d'indication sur le class name de la combobox gérant l'url pour Mozilla.. Dommage !

    Je pense que tu auras plus de chance de faire un truc "portable à toutes les versions d'IE" en accédant à IE avec COM/OLE...
    Je vais regarder cette piste mais COM n'est pas très simple d'utilisation .

Discussions similaires

  1. [OpenOffice][Texte] Comment récupérer l'url du répertoire du document actif
    Par Satine dans le forum OpenOffice & LibreOffice
    Réponses: 4
    Dernier message: 04/11/2014, 18h33
  2. Réponses: 1
    Dernier message: 30/04/2011, 19h14
  3. [javascript] Comment récupérer l'url d'une page?
    Par adil_vpb dans le forum Général JavaScript
    Réponses: 27
    Dernier message: 01/03/2007, 17h09
  4. Comment récupérer l'url dans une iFrame
    Par Puzzo dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 11/01/2006, 11h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo