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

Delphi Discussion :

Passage de paramètre avec CreateProcess pour le navigateur par défaut


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 38
    Points : 21
    Points
    21
    Par défaut Passage de paramètre avec CreateProcess pour le navigateur par défaut
    Bonjour.

    Je lance mon navigateur par défaut avec comme paramètre une adresse http.
    Si le navigateur n'est pas ouvert aucun problème, s'il est déjà ouvert une nouvelle fenêtre s'ouvre mais sur ma page d'accueil.
    voici un extrait de mon 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
    var
    Browser: array[0..255] of Char;
    navigateur:string;
    PathTmp : array[0..255] of Char;
    Executable: string;
    StartInfo: TStartupInfo;
    ProcessInformation: TProcessInformation;
    PCharFichier: PChar;
    fichier:string;
    handles: TList;
    i: Integer;
    Texte:array[0..250]of Char;
     
    begin
    try
    GetTempPath(255, PathTmp);
    fichier:='temp.html';
    FileCreate(PathTmp + fichier);
    FindExecutable(PChar(fichier), PathTmp, Browser);
    DeleteFile(PathTmp + 'temp.html');
    finally
    navigateur:=String(Browser);
    ZeroMemory(@StartInfo,
    sizeof(StartInfo)); 
    StartInfo.cb:= sizeof(StartInfo);
    end;
     
    fichier:='https://www.geoportail.gouv.fr/carte' ;
    PCharFichier:=PChar(' "'+fichier+'"');
     
    CreateProcess(PChar(navigateur),PCharFichier,nil,nil,true,CREATE_NEW_CONSOLE,nil,nil,StartInfo,ProcessInformation);
    J'ai opté pour cette solution car ensuite je récupère ensuite le handle de la fenêtre, ce qui me permet d'envoyer un message (déplacement automatique de la carte), et de copier une partie de celle-ci (en passant par GetDc(handle) )

    Merci pour votre aide.

  2. #2
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 658
    Points : 3 599
    Points
    3 599
    Billets dans le blog
    2
    Par défaut
    Bonsoir,

    Il faut peut être voir avec les paramètres attendus par le navigateur.
    Par exemple, chez moi avec Firefox, votre code a le comportement que vous indiquez.
    En remplaçant votre ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PCharFichier:=PChar(' "'+fichier+'"');
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PCharFichier:=PChar('-url '+fichier);
    Si Firefox est déjà ouvert, un nouvel onglet apparait pointant sur l'url indiquée.

    A voir pour les autres navigateurs...
    Mon site - Mes tutoriels - GitHub - N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 38
    Points : 21
    Points
    21
    Par défaut Merci pour votre réponse
    Bonjour.
    Je viens d'essayer votre solution.
    Mon navigateur par défaut est aussi Firefox, et bien sûr la modification proposée fonctionne. Je force l'utilisation d'internet explorer (navigateur:='C:\Program Files\Internet Explorer\iexplore.exe' et le résultat obtenu c'est l'ouverture d'une deuxième fenêtre.
    Encore merci pour votre aide.

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

Discussions similaires

  1. commande windows pour recuperer navigateur par défaut
    Par choupeo dans le forum Langage
    Réponses: 13
    Dernier message: 21/12/2007, 21h43
  2. Passage de parametre avec <f:param>
    Par faico dans le forum JSF
    Réponses: 2
    Dernier message: 06/04/2007, 11h05
  3. pb passage de parametre avec le displaytag
    Par crocodingo dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 02/04/2007, 17h52
  4. Passage de parametre avec like
    Par Vinijano dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 23/01/2007, 12h53
  5. [XSL~FO] passage de parametre avec XSL/FO
    Par nosfer_13 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 12/07/2006, 10h23

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