Programmpfad ergänzen
-
Hallo Zusammen.
Ich finde leider keine Lösung und Frage deshlab besser einmal nach:
wsprintf(amp, "%d", agewf); ShellExecute(NULL, TEXT( "open" ), TEXT( "C:\\Programme\\Internet Explorer\\iexplore.exe" ), TEXT( "C:\\greifer\\k") TEXT(".htm" ), TEXT( "Greifer" ), SW_SHOW);Die variabel amp hat einen zahlenwert zwischen 1 und 99. Ich hab 99 verschiedene HTML Dateien die je nach Wert der Variabel geöffnet werden sollen.
Wir bringe ich nun meine Variabel zwischen den Pfad?

C:\\greifer\\k1.htm
C:\\greifer\\k2.htm
C:\\greifer\\k3.htm
...danke mal im Voraus

-
Du kannst das ruhig mit wsprintf machen. In etwa so
:TCHAR szPath[MAX_PATH + 1]; for(int i = 1; i <= 99; i++) { wsprintf(szPath, TEXT("C:\\greifer\\k%d.htm"), i); ShellExecute(NULL, TEXT("open"), TEXT( "C:\\Programme\\Internet Explorer\\iexplore.exe"), szPath, NULL, SW_SHOWDEFAULT); }Dies würde Dir beispielsweise alle HTML-Dokumente mit dem Internet Explorer öffnen.
PS: Wenn Du das in C++ lösen willst, geht das mit stringstream's.
-
Vielen Dank für Deine Hilfe!!!!
-
Noch besser ist es nicht den Interenexpolrer als Executable anzugeben, sondern direkt einfach die HTML-Datei als Parameter für die ausführbare Datei anzugeben. Dann wird auch der registrierte Explorer gestartet. Es gib ja Leute die nicht den MS-Explorer nutzen.
-
AAA jetzt hab ich ein weiteres Problem

Mein Programm öffnet ja ein externes Fenster kann aber logischerweise auf keine Taste mehr reagiere da der Fokus(nennt man das so???) auf das neue Fenster zeigt.
Ich hab mich mal erkundigt und bei WM_HIDE usw.. stehengeblieben.
Gibt es eine Option das neue Fenster zu öffnen (im Vordergrund oder im hintergrund spielt keine Rolle aber den FOKUS auf meinem Programm zu halten?
Oder muss ich beim setzen der Fensterparameter
hWnd = CreateWindowEx(WS_EX_OVERLAPPEDWINDOW, //...Eine Option schreiben um den alleinigen Fokus zu halten?
-
Den Fokus kannst Du in diesem Fall nicht behalten. Du kannst aber den Fokus setzen mittels SetFocus(HWND hWnd).
-
Das hängt von dem Parameter ab, wie das das neue Fenster des Prozesses angezeigt werden soll. CreateWindow hat damit nichts zu tun.
Der letzte Parameter von ShellExecute steiert das. Hier müsstest Du SW_SHOWNA verwenden statt SW_SHOW!
-
Das hab ich schon probiert hat aber keinen Einfluss.
ShellExecute(NULL, TEXT("open"), TEXT( "C:\\Programme\\Internet Explorer\\iexplore.exe"), szPath, NULL, SW_SHOWNA); // oder : ShellExecute(NULL, TEXT("open"), TEXT( "C:\\Programme\\Internet Explorer\\iexplore.exe"), szPath, NULL, SW_SHOWDEFAULT); // oder : ShellExecute(NULL, TEXT("open"), TEXT( "C:\\Programme\\Internet Explorer\\iexplore.exe"), szPath, NULL, SW_SHOW);Ich bemerk leider keinen Unterschied. Das Programm startet den IE, lädt die Seite dazu verliert aber den Fokus. Der Fokus bleibt bei neu geöffneten Fenster hängen und reagiert demzufolge nicht mehr auf mein Programm (Tastendruck)
-
Versuche es doch mal bitte so wie ich es gesagt habe. Gib statt den Programmnamen die htlm Datei an und versuch es nochmal mit SW_SHOWNA!