Cacher la fenetre d'internet explorer a son lancement [Résolu]

Messages postés
706
Date d'inscription
mardi 30 décembre 2003
Statut
Membre
Dernière intervention
27 janvier 2009
- - Dernière réponse : cosmobob
Messages postés
706
Date d'inscription
mardi 30 décembre 2003
Statut
Membre
Dernière intervention
27 janvier 2009
- 20 mai 2004 à 14:32
ya t'il quelqu'un qui sait comment lancer internet explorer, tel que sa fenetre principale soit cachée des qu'il soit lancé? (on le lance avec shellexecute ou createprocess, pas un lancement manuel).
2 possibilités selon moi :
passer le bon parametre a iexplore.exe, mais ca me parait improbable qu'il admette un parametre pr ke sa fenetre principale ne s'affiche pas.
cacher la fenetre des qu'il est lancé avec ShowWindow (dans ce cas qu'est ce que je mets exactement ?).

mais la 2e solution entraine ss doute que la fenetre d'internet explorer soit affichée pendant un court laps de temps, ce que je ne veux pas.

peut etre un autre moyen avec des bons paramètres pour CreateProcess, j'ai cherché mais sans succés, quelqu'un sait ?

merci.
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
2674
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
3
Merci
Yep,
C'est simple a faire, faut utiliser le flag SW_HIDE.
Voici un bout de code simple et qui mqrche :)
#include <windows.h>

int main()
{
HWND hMain = GetActiveWindow();

ShellExecute(hMain,"open","iexplore","http://www.cppfrannce.com",0,SW_HIDE);

return 0;
}


Pour t'en convaincre, ferme toute les fenetres Explorer, puis lance le programme et va regarder dans le gestionnaire des taches ... Tu auras quelquechsoe comme IEXPLORE.EXE alors qu'aucune fenetre n'est visible...
Pour fermer la fenetre tu te debrouilles ensuite avec le processid retourné par ShellExecute et les API.

A++ et bonne prog ...

Samir

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 186 internautes nous ont dit merci ce mois-ci

Commenter la réponse de DeAtHCrAsH
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
13
3
Merci
Je viens d'essayer, pas de prob.
Repris sur exemple deja mis en source.

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, PSTR, int)
{
PROCESS_INFORMATION pi;
STARTUPINFO si = {sizeof(si)};
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_HIDE;
if(!CreateProcess(0,
"C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE http://brunews.free.fr/", 0, 0, 0,
CREATE_SUSPENDED, 0, 0, &si, &pi)) return 0;
ResumeThread(pi.hThread);
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
return 0;
}

ciao...
BruNews, Admin CS, MVP Visual C++

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 186 internautes nous ont dit merci ce mois-ci

Commenter la réponse de BruNews
Messages postés
2674
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
0
Merci
BruNews> Les deux solutions qu'on propose sont identiques sur les résultats obtenus ?
Commenter la réponse de DeAtHCrAsH
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
13
0
Merci
Je pense, j'ai juste repris ce qui etait deja mis.
A part que ShellExecute reprend une eventuelle fenetre IE existante alors que CreateProcess en fait une nouvelle.

Le serveur CS merde, je n'ai pas de mail sur les questions reponses.

ciao...
BruNews, Admin CS, MVP Visual C++
Commenter la réponse de BruNews
Messages postés
706
Date d'inscription
mardi 30 décembre 2003
Statut
Membre
Dernière intervention
27 janvier 2009
3
0
Merci
ok merci a tous, les 2 résultats marchent chez moi ;)
enfin shellexecute cree aussi un nouveau process et se contente pas d'ouvrir une nvelle fenetre ds un IE déja existant (du- chez moi, peut etre cela varie t'il d'une conf a l'autre? on peut bien choisir de lancer l'explorateur en plusieurs process ou en plsrs threads du meme process)
shellexecute a de toutes facons "l'avantage" de ne pas devoir spécifier le chemin d'acces d'IE qui peut changer d'un PC a l'autre

merci encore ;)
Commenter la réponse de cosmobob
Messages postés
706
Date d'inscription
mardi 30 décembre 2003
Statut
Membre
Dernière intervention
27 janvier 2009
3
0
Merci
ha j'ai encore une question.
comment récuperer le pid d'un processus lancé avec shellexecute ? (avec createprocess j'ai fait c'est plus simple)
j'ai utilisé shellexecutex, et avec ca j'ai pu récuperer le handle du processus crée, mais a part de celui ci, comment je trouve le pid ? (sachant ke j'ai trouvé sur msdn une fonction GetProcessId mais qui est implémenté uniquement sur XP SP1, et que mon header windows.h ne contient de toutes facons pas... dc sans doute ya un autre moyen)
il faudrait la fonction 'réciproque' de openprocess
Commenter la réponse de cosmobob