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

MFC Discussion :

activer internet explorer avec adresse spécifique


Sujet :

MFC

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2005
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 20
    Points : 6
    Points
    6
    Par défaut activer internet explorer avec adresse spécifique
    Bonjour à tous

    J'ai un petit problème avec mon vpn. Pour le régler, j'ai pensé à un petit programme (visual c++ 6.0), mais je ne connais pas beaucoup ce langage. C'est pourquoi je fais appel à vous tous...

    Voici en gros le problème que j'ai avec mon vpn.

    Mon lien vpn fonctionne, mais il n'est pas très stable. Il se déconnecte souvent et il a beaucoup de difficulter à se reconnecter par lui-même. J'ai essayé tout ce que je pouvais, mais bon. J'ai même contacté Linksys (car mes 2 serveurs sont des linksys), mais rien ne semble y faire. Pour qu'il refonctionne à nouveau, je dois toujours aller dans mon routeur et faire un save settings. Ensuite il se reconnecte (jusqu'à la prochaine déconnection ). C'est pourquoi je voudrais créer un programme qui ferais tout automatiquement.

    Voici l'algo auquel j'ai pensé

    Avec une tâche préprogrammé (task de windows), je veux appeler le prog tous les 5 min (jusque là, je vais être capable de le faire ).

    Si je ping mon routeur et que celui-ci répond, alors je sort de mon prog
    sinon
    1-je veux ouvrir mon browser
    2-Ensuite, entrer cette adresse (avec le mot de passe) pour aller dans
    mon routeur (Bref, cette adresse :
    http://%20:motdepasse@172.16.202.2
    3-Une fois dans le routeur je veux entrer cette commande-ci (dans la
    même fenêtre) pour resetter le routeur :
    javascript:document.F1.submit()
    4-Je veux que mon browser se ferme
    Fin

    Bon c'est peut-être un peu tiré par les cheveux, et je ne sais pas si ça ce fait . Je peux vous dire que manuellement, les 2 lignes que je dois mettre dans ma barre d'adresse fonctionnent bien. Il ne me reste plus qu'à rendre le tout automatique.

    Aussi, peut-être qu'il y a une autre solution moins compliqué (sauf celle de jeter les routeurs aux ordures ... ) bref, je suis ouverte à toutes les suggestions.

    Merci d'avance pour votre aide

    P.S. Je crois que les dinosaures vont avoir le temps de réapparaitre avant que je trouve la solution tout seule

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    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 379
    Points : 41 568
    Points
    41 568
    Par défaut
    Ben pour lancer l'adresse, c'est pas trop un problème (tu exécutes iexplore.exe avec l'URL complète) Mais pour exécuter les commandes, il te faut connaitre (avec Spy++ par exemple) l'ID de la barre d'adresses (l'editbox, pas la toolbar) et celle du bouton OK qui va avec (là, ça risque d'être plus dur si c'est un bouton interne à une toolbar).
    Ainsi, tu peux retrouver la fenêtre d'IE avec un FindWindow(), utiliser les ID des contrôles pour récupérer leurs HWND, puis envoyer le texte à la barre d'adresse (je ne sais pas si SetWindowText() marche, mais je sais que SetDlgItemText() ne marche pas) et enfin réussir à simuler un clic sur OK (ou un appui sur Entrée: Je crois bien que WM_KEYDOWN marchera pour ça).

    Ainsi, avec un peu de chances, ça devrait marcher.
    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.

  3. #3
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    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 379
    Points : 41 568
    Points
    41 568
    Par défaut
    Ou bien, il y a peut-être des composants COM qui font ça tous seuls, mais j'ignore lesquels.
    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
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    ou alors tu fais un programme MFC SDI/MDI dérivant de CHtmlView, et ca simplifie tout.

  5. #5
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    Citation Envoyé par nico-pyright(c)
    ou alors tu fais un programme MFC SDI/MDI dérivant de CHtmlView, et ca simplifie tout.
    http://www.developpez.net/forums/vie...=800751#800751

  6. #6
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    La méthode Navigate devrait suffir. Il est possible aussi d'appeler les fonctions javascript si besoin

  7. #7
    Futur Membre du Club
    Inscrit en
    Juin 2005
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    Merci beaucoup pour vos suggestions. J'ai regardé la méthode navigate et je crois que ca pourrait faire l'affaire. Le problème est que je ne comprends pas trop comment elle fonctionne et sur internet il n'y a pas d'exemple concret et simple.

    Pour débuter (afin d'essayer de comprendre quelque chose...), Je voudrais seulement afficher la page de google. J'ai essayé ce truc, mais naturellement j'ai un erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #include "stdafx.h"
     
    int main(int argc, char* argv[])
    {
    	  x.Navigate("www.google.ca");
     
    	return 0;
    }
    Pour le x dans x.navigate, j,ai aucune idée quoi mettre là...

    Merci

  8. #8
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    Tu as naturellement une erreur, tu dois faire un projet MFC supportant par exemple l'architecture SDI, se basant sur la classe CHtmlView

    Une fois ce projet généré, tu as un exemple de comment fonctionne le navigate

  9. #9
    Futur Membre du Club
    Inscrit en
    Juin 2005
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    OK. C'est fait et ça fonctionne. Du moins, j'ai une page internet qui s'ouvre. Le problème est qu'elle s'ouvre sur msdn.microsoft... par défaut. Si je vais voir dans le code je ne trouve pas où je pourrais changer l'adresse par défaut. Par exemple je voudais mettre google.ca

  10. #10
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    Dans le fichier qui se termine par View (la vue), tu dois avoir un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Navigate2(_T("http://www.microsoft.com/visualc/"),NULL,NULL);
    c'est ici qu'il faut remplacer

  11. #11
    Futur Membre du Club
    Inscrit en
    Juin 2005
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    Je l'ai trouvé. Je ne l'avais vraiment pas vu

    Maintenant, j'arrive à ouvrir la page de mon routeur. Par contre, une fois que cette page est ouverte, je dois mettre l'adresse (ou plutot du javascript) javascript:document.F1.submit();

    J'Ai fais ceci pour que le deuxième truc s'ouvre dans la même fen^tre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Navigate2(_T("http://172.16.202.2"),NULL,NULL);
    Navigate2(_T("javascript:document.F1.submit();"),NULL,NULL);
    on dirait qu'il n'ouvre pas l'adresse de mon routeur, mais seulement la deuxième, alors ca ne fonctionne pas. Est-ce tu as une idée? Il faut vraiment que j'entre dans mon routeur avant de lancer le javscript...

  12. #12
    Futur Membre du Club
    Inscrit en
    Juin 2005
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    Je vais essayer de mettre une pause ou un truc du genre... je ne sais pas si ca va fonctionner... Onva voir

  13. #13
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    Il faut faire ton traitement lorsque l'evenement de fin de téléchargement de la page est envoyé.
    L'évenement est OnDocumentComplete (je crois que le programme généré l'implémente par défaut, sinon il faudra utiliser le classwizard)

  14. #14
    Futur Membre du Club
    Inscrit en
    Juin 2005
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    Désolé si c'est long avant que je réponde, mais je buche sur le classwizard.

    J'ai mis ceci, mais la deuxième adresse ne fonctionne pas. Alors je regarde le classwizard à savoir comment ca fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	Navigate2(_T("http://%20:comlabqc@172.16.202.2/"),NULL,NULL);
    	OnDocumentComplete("http://www.google.ca");
    [/quote]

  15. #15
    Futur Membre du Club
    Inscrit en
    Juin 2005
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    Je ne sais pas comment les gens font pour faire une redirection d'adresse en c++. Pourtant ça n'a pas l'air compliqué... Je dois surement faire quelque chose de pas correct.

    Je reviens...

  16. #16
    Futur Membre du Club
    Inscrit en
    Juin 2005
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    Bon, mon problème est résolu...J'ai du procéder un peu autrement, car la deuxième fenêtre ne voulait rien savoir. Mais là c'est fait...

    Voici en gros ce qui a changé :
    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
     
    void CInternetView::OnInitialUpdate()
    {
    	CHtmlView::OnInitialUpdate();
     
    	// TODO: This code navigates to a popular spot on the web.
    	//  change the code to go where you'd like.
    	Navigate2(_T("http://172.16.202.2/"),NULL,NULL);
    	SetTimer(0,5000,NULL);
    }
     
    void CInternetView::OnTimer(UINT nIDEvent) 
    {
    	// TODO: Add your message handler code here and/or call default
    	if (!m_QuitFlag)
    	{
    		Navigate2(_T("javascript:document.F1.submit();"),NULL,NULL);
    		m_QuitFlag = TRUE;
    	}
    	else
    	{
    		KillTimer(nIDEvent);
    		AfxGetMainWnd()->PostMessage(WM_COMMAND, ID_APP_EXIT, NULL);
    	}
     
    	CHtmlView::OnTimer(nIDEvent);
    }
     
    Alors un gros merci, ton aide a été très apprécié
     
    Bye

  17. #17
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    re,
    alors, effectivement ca peut marcher comme ca, mais ce n'est pas propre, dans la mesure où tu n'es pas forcément sur que la page soit chargée après 5 secondes (meme si c'est en local)

    En fait, une fois que la page est chargée, la fonction OnDocumentComplete est appelée automatiquement, et c'est seulement ici que tu sauras que ta page est chargée et que tu pourras appeler ton autre page.

    Mais bon, si tu t'en sors comme ca, pourquoi pas

Discussions similaires

  1. Souci dans le pilotage d'internet explorer avec vba
    Par alyjeje dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 03/08/2009, 17h22
  2. Problème ouverture Internet Explorer avec macro
    Par pimter dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/01/2009, 18h37
  3. Internet explorer avec wine ?
    Par donkeyquote dans le forum Applications et environnements graphiques
    Réponses: 7
    Dernier message: 22/09/2008, 10h00
  4. Problème ouverture Internet Explorer avec macro
    Par bmxer31 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 02/08/2008, 22h09
  5. Bug internet explorer avec hotmail.com
    Par rub091 dans le forum IE
    Réponses: 8
    Dernier message: 31/05/2006, 09h21

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