2009-06-11 5 views
4

Ich habe ein Programm in C++ geschrieben, das einige Computerdiagnose durchführt. Bevor das Programm beendet wird, muss ich Internet Explorer starten und zu einer bestimmten URL navigieren. Wie mache ich das aus C++? Danke.Starten Sie IE von einem C++ - Programm

Antwort

8

Hier sind Sie ... Ich gehe davon aus, dass Sie MSVC reden ++ hier ...

// I do not recommend this... but will work for you 
system("\"%ProgramFiles%\\Internet Explorer\\iexplore.exe\""); 


// I would use this instead... give users what they want 
#include <windows.h> 

void main() 
{ 
    ShellExecute(NULL, "open", "http://stackoverflow.com/questions/982266/launch-ie-from-a-c-program", NULL, NULL, SW_SHOWNORMAL); 
} 
+1

das wird den Standard-Browser starten, und das könnte IE sein? –

+0

Vielen Dank, aber das startet den Standard-Browser, der nicht IE sein kann. – Jon

+0

Verwenden Sie ein benutzerdefiniertes Plug-In oder etwas? Ich würde!% $% $ Wenn ein Programm für mich etwas anderes als Firefox eröffnet. Benutzer haben eine Wahl in diesen Tagen;) – MichaelICE

2

Mit nur Standard C++, wenn iexplore auf dem Weg ist dann

#include <stdlib.h> 

... 
string foo ("iexplore.exe http://example.com"); 
system(foo.c_str()); 

Wenn Es ist nicht auf dem Pfad, dann müssen Sie den Pfad irgendwie ausarbeiten und das Ganze an den Systemaufruf übergeben.

+0

Siehe meinen Beitrag oben ... Sie sollten entweder genenv oder% ProgramFiles% – MichaelICE

+0

+1 Diese Antwort ist besser als meine. Erwarten Sie, dass iexplore.exe auf dem Pfad ist (wann wäre das nicht?) Und generisch mit system() –

+0

ärgerlich, iexplore ist nicht auf meinem Pfad auf XP. :-( – Glen

2

Ich bin mit Glen und John, außer ich würde lieber CreateProcess stattdessen verwenden. Auf diese Weise haben Sie einen Prozess, mit dem Sie etwas tun können. Beispiele könnten Kill IE sein, wenn Sie damit fertig sind, oder einen Thread beobachten lassen, der IE beendet (WaitForSingleObject mit dem Prozess-Handle), so dass es etwas wie Neustart oder Herunterfahren Ihres Programms auch tun könnte.

3

wenn Sie CoCreateInstance (CLSID_InternetExplorer, ...) in die Verwendung und die Navigation suchen Sie den Internet Explorer müssen starten sollte wirklich auch dann. Je nachdem, was Sie sonst noch tun möchten, ist es möglicherweise eine bessere Option.

2

Müssen Sie wirklich IE oder nur etwas Inhalt in einem Browser starten? Die ShellExecute Funktion startet, welcher Browser als Standard konfiguriert ist. Nennen Sie es wie folgt aus:

ShellExecute(NULL, "open", szURL, NULL, NULL, SW_SHOW); 
+0

Verwenden Sie nicht das Desktop-Fenster als Eltern Wenn Sie keine Eltern haben möchten, übergeben Sie "NULL". Ich habe den Code hier aktualisiert, wenn Sie dies in einem Ihrer eigenen Programme verwenden, sollten Sie es beheben. –

2
include <windows.h> 

int main() 
{ 
    ShellExecute(0, "open", 
        "C:\\progra~1\\intern~1\\iexplore.exe", 
        "http://www.foo.com", 
        "", 
        SW_MAXIMIZE); 
    return 0; 
} 
Verwandte Themen