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

Macros et VBA Excel Discussion :

Navigation Internet privée [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur étude
    Inscrit en
    Novembre 2016
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur étude

    Informations forums :
    Inscription : Novembre 2016
    Messages : 50
    Par défaut Navigation Internet privée
    Bonjour et bonne année,

    l'un d'entre vous saurait-il, svp, comment on peut ouvrir (et piloter) Internet Explorer en mode Inprivate?
    Ouvrir IE en mode normal n'est pas difficile, mais en mode navigation privée... je sèche.

    Je vous remercie par avance.

    Yohann

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour,

    de la même manière que manuellement, non ?!

    Soit par le commutateur dédié au lancement de l'exécutable (voir documentation),
    soit par la combinaison de touches après l'ouverture normale (indiquée dans un menu d'IE) …

    _________________________________________________________________________________________________________
    Je suis Paris, Berlin, Nice, Bruxelles, Charlie, …

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur étude
    Inscrit en
    Novembre 2016
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur étude

    Informations forums :
    Inscription : Novembre 2016
    Messages : 50
    Par défaut
    Merci de ta réponse.
    Ma question était tout sauf précise...

    Je voulais dire, lancer IE en mode inprivate à partir d'une macro Excel.

    Petite avancée: j'ai trouvé comment ouvrir une fenêtre de navigation privée, mais je n'arrive pas ensuite à la piloter.

    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
    Public Sub Tests()
     
    Dim Fichier As String
     
    Dim IE As Object
    Set IE = GetObject("new:{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}")
    With IE
        .navigate "about:inprivate"
        .Visible = True
        .resizable = True
    End With
     
    Do Until IE.ReadyState = 4
        DoEvents
    Loop
     
    IE.navigate = "www.google.fr" 'c'est là que ça bugge
     
    End Sub
    Nom : Sans titre.png
Affichages : 1280
Taille : 14,5 Ko

    Quelqu'un aurait-il une idée, svp?

    Merci par avance.

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur étude
    Inscrit en
    Novembre 2016
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur étude

    Informations forums :
    Inscription : Novembre 2016
    Messages : 50
    Par défaut
    Finalement, la fenêtre ouverte n'est pas vraiment InPrivate...

    La fenêtre qu'on obtient lors de l'ouverture par macro n'est pas complètement la même que celle qu'on ouvre manuellement (il manque le logo InPrivate bleu près du nom de l'onglet).

    fenêtre ouverte par macro
    Nom : Sans titre.png
Affichages : 1298
Taille : 66,6 Ko

    fenêtre ouverte manuellement
    Nom : Sans titre 2.png
Affichages : 1224
Taille : 58,7 Ko

    J'ai trouvé un bout de code sur Internet qui permet de récupérer la fenêtre privée ouverte par macro et de la rediriger... mais apparemment, on sort du mode InPrivate car l'historique se trouve alimenté.

    Voilà le code:
    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
    Public Sub Tests()
     
    Dim Fichier As String
     
    Dim IE As Object
    Set IE = CreateObject("InternetExplorer.Application")
    With IE
        .navigate "about:InPrivate"
        .Visible = True
        .resizable = True
    End With
     
    Do Until IE.ReadyState = 4
        DoEvents
    Loop
     
    Set oShellApp = CreateObject("shell.Application")
    Set oShellAppWindows = oShellApp.Windows
    With oShellApp
        For Each oWin In oShellAppWindows
            If LCase(TypeName(oWin.document)) = "htmldocument" Then
                If oWin.LocationURL Like "about:InPrivate" Then
                    With oWin
                        .navigate "google.fr" 'par exemple
                    End With
                End If
            End If
        Next
    End With
     
    End Sub
    Je ne vois pas comment m'en sortir...
    Images attachées Images attachées  

  5. #5
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Citation Envoyé par yoyof Voir le message
    Je ne vois pas comment m'en sortir...
    Et pourtant dès le post #2 :

    Citation Envoyé par Marc-L Voir le message
    par le commutateur dédié au lancement de l'exécutable (voir documentation)
    Déjà lancer l'application de cette manière, la seule valable et n'apparaissant pas ni dans le code du post #3
    ni dans celui du post #4 totalement idiot, dans le sens où dans une première partie le pilotage est lancé classiquement
    puis dans la seconde est cherchée cette application pourtant déjà pilotée dans la première !
    Si vraiment tu as trouvé le code ainsi, oublie l'auteur de cette cagade, c'est du très mauvais copier / coller ‼

    C'est dommage car en lançant l'application avec le commutateur adéquat
    (as-tu au moins effectué la recherche à la portée de tout débutant ?!)
    puis en utilisant la détection de l'application via la deuxième partie du post #5 cela fonctionne bien !

    J'attends donc ta prochaine ébauche de code, à minima le résultat de ta recherche …

    _________________________________________________________________________________________________________
    Copier / Coller n'est pas coder !

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re une solution parmis d'autre
    Bonjour
    salut marc voila un truc qui n'a pas été traiter sauf défaut de mémoire de ma part

    code
    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
    Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
    Sub test()
    IeNavigateprivée "https://www.google.fr/"
    End Sub
     
    Public Function IeNavigateprivée(URL)
    ' necessite d'activer la reference "microsoft shell  controls et automation" sinon tu fait une recherche pour le faire en late binding
        Dim objShell As Shell, IE As Object
     Set IE = CreateObject("internetexplorer.application")
        With IE: .navigate "about:Blank": .Visible = True: .resizable = True: End With
        Do Until IE.ReadyState = 4 Or IE.busy: DoEvents: Loop
     
        Application.Wait (Now + TimeValue("0:00:01")) ' pour les PCS un peu mous du bulbe
        'principe:
        ' action sur la touche  ,  code ascii de la touche  ,   0=la fenetre active  ,   le sens: 0=appuyé ou  &h2=lacher  ,   0 tout le temps)
        ' l'avantage de cette methode par raport a sendkeys c'est que l'on est sur de taper sur la bonne fenetre avec le 2d argument(0=fenetre active)
        keybd_event 17, 0, 0, 0    ' le keycode 17 correspont a la touche ctrl
        keybd_event 16, 0, 0, 0    ' le code 16 correspond a  la touche maj
        keybd_event "80", 0, 0, 0    ' le code 80 correspond la touche "p"
     
        'on relache les touche avec argument "&H2" & 2 eme argument important!!!!!!! de toujours relacher les touche avec l'apis
        keybd_event 17, 0, &H2, 0
        keybd_event 16, 0, &H2, 0
        keybd_event "80", 0, &H2, 0
     
        Application.Wait (Now + TimeValue("0:00:01")) ' pour les PCS un peu mous du bulbe
     
        ' alors voila on a taper les touche ctrl+maj+"p" une autre fenetre IE s'est ouverte inprivate
        'il nous faut donc la retrouver donc pointer cette nouvelle instance de IE de facon a lui donner la bonne url
     
     
        Set objShell = New Shell
        For Each obj In objShell.Windows
            If TypeName(obj.document) = "HTMLDocument" Then
                Set objIE = obj
                'des que l'on a trouvé la fentre avec about:InPrivate" c'est la bonne alors on change la location
                If objIE.LocationURL = "about:InPrivate" Then objIE.document.Location = URL   'c'est là que ça bugge plus!!!!!
            End If
        Next
    IE.Quit 'on peut fermer la premiere fenetre IE que l'on a lancer en premier
    End Function
    voila

    edit:
    on pourrais meme envisager de manipuler la foction comme object "IE" afin de manipuler par la suite le document dans la sub

    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
    Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
    Sub test()
    Set IE = IeNavigateprivée("https://www.google.fr/")
    Do Until IE.ReadyState = 4 Or IE.busy: DoEvents: Loop
     'code pour traiter ou manipuler le document   
    '...
    '...
    End Sub
     
    Public Function IeNavigateprivée(URL) As Object
    ' necessite d'activer la reference "microsoft shell  controls et automation" sinon tu fait une recherche pour le faire en late binding
        Dim objShell As Shell, IE As Object
     Set IE = CreateObject("internetexplorer.application")
        With IE: .navigate "about:Blank": .Visible = True: .resizable = True: End With
        Do Until IE.ReadyState = 4 Or IE.busy: DoEvents: Loop
     
        Application.Wait (Now + TimeValue("0:00:01")) ' pour les PCS un peu mous du bulbe
        'principe:
        ' action sur la touche  ,  code ascii de la touche  ,   0=la fenetre active  ,   le sens: 0=appuyé ou  &h2=lacher  ,   0 tout le temps)
        ' l'avantage de cette methode par raport a sendkeys c'est que l'on est sur de taper sur la bonne fenetre avec le 2d argument(0=fenetre active)
        keybd_event 17, 0, 0, 0    ' le keycode 17 correspont a la touche ctrl
        keybd_event 16, 0, 0, 0    ' le code 16 correspond a  la touche maj
        keybd_event "80", 0, 0, 0    ' le code 80 correspond la touche "p"
     
        'on relache les touche avec argument "&H2" & 2 eme argument important!!!!!!! de toujours relacher les touche avec l'apis
        keybd_event 17, 0, &H2, 0
        keybd_event 16, 0, &H2, 0
        keybd_event "80", 0, &H2, 0
     
        Application.Wait (Now + TimeValue("0:00:01")) ' pour les PCS un peu mous du bulbe
     
        ' alors voila on a taper les touche ctrl+maj+"p" une autre fenetre IE s'est ouverte inprivate
        'il nous faut donc la retrouver donc pointer cette nouvelle instance de IE de facon a lui donner la bonne url
     
     
        Set objShell = New Shell
        For Each obj In objShell.Windows
            If TypeName(obj.document) = "HTMLDocument" Then
                Set objIE = obj
                'des que l'on a trouvé la fentre avec about:InPrivate" c'est la bonne alors on change la location
                If objIE.LocationURL = "about:InPrivate" Then objIE.document.Location = URL   'c'est là que ça bugge plus!!!
            End If
        Next
    IE.Quit 'on peut fermer la premiere fenetre IE que l'on a lancer en premier
    Set IeNavigateprivée = objIE
    End Function
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. enregister navigation internet
    Par llusca dans le forum Internet
    Réponses: 2
    Dernier message: 21/09/2009, 16h35
  2. Navigation internet programmer.
    Par F.Saad dans le forum C#
    Réponses: 5
    Dernier message: 20/09/2009, 01h02
  3. logiciel de rapport de navigation internet
    Par remyv87 dans le forum Sécurité
    Réponses: 19
    Dernier message: 16/05/2007, 12h22
  4. Automates de navigation Internet
    Par Scritch852 dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 30/03/2007, 14h09

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