Hallo,
bisher haben wir folgendes unter Windows XP und IE6 verwendet und es hat funktioniert:
aber im IE8 wartet er jetzt nicht mehr, bis der IE sich beendet hat. Bzw es funktioniert nur, wenn noch keine IE-Fenster offen sind. Wenn schon welche offen sind, dann wartet er einfach nicht, sondern geht ihm Code direkt weiter. Ich habe jetzt im Internet gelesen, dass man lieber CoCreateInstance verwenden sollte. ist das richtig? Ich habe es jetzt so versucht:
Was ist daran falsch? Das Programm beendet sich leider mit einer Fehlermeldung:
Fehler in der Anwendung - Die ANweisung in "0x004027c6" verweist auf Speicher in "0x000000000". Der Vorgang "read" konnte nicht auf dem Speicher durchgeführt werden.
Ich hoffe mir kann jmd helfen. WEnn CoCreateInstance doch falsch sein sollte, vielleicht hat ja jmd einen Tipp, wie man den IE starten kann, auch wenn schon IE-FEnster offen sind und das Programm so lange wartet, bis man den IE wieder schließt.
Viele Grüße
bisher haben wir folgendes unter Windows XP und IE6 verwendet und es hat funktioniert:
Code:
PROCESS_INFORMATION piIE;
STARTUPINFO suiIE;
suiIE.cb =sizeof(STARTUPINFO);
suiIE.lpReserved =0;
suiIE.lpDesktop =NULL;
suiIE.lpTitle =NULL;
suiIE.dwX =0;
suiIE.dwY =0;
suiIE.dwXSize =0;
suiIE.dwYSize =0;
suiIE.dwXCountChars =0;
suiIE.dwYCountChars =0;
suiIE.dwFillAttribute =0;
suiIE.dwFlags =STARTF_USESHOWWINDOW;
suiIE.wShowWindow =SW_SHOWMAXIMIZED;
suiIE.cbReserved2 =0;
suiIE.lpReserved2 =0;
if(CreateProcess(NULL,strIE,NULL,NULL,FALSE,CREATE_DEFAULT_ERROR_MODE|NORMAL_PRIORITY_CLASS,NULL,NULL,&suiIE,&piIE)==TRUE) {
CloseHandle(piIE.hThread);
}
WaitForInputIdle(piIE.hProcess, INFINITE);
WaitForSingleObject(piIE.hProcess, 100) ;
Code:
IWebBrowser2 *pBrowser = NULL;
WNDCLASS a; HWND b; MSG c; char aa[100];
HRESULT h;
// Wurde diese Funktion fehlerfrei ausgeführt, wird der IE geöffnet.
h = CoCreateInstance(CLSID_InternetExplorer, NULL, CLSCTX_ALL, IID_IWebBrowser2, (void**)&pBrowser);
pBrowser->put_Visible(VARIANT_TRUE); // Setzt den Browser sichtbar
Fehler in der Anwendung - Die ANweisung in "0x004027c6" verweist auf Speicher in "0x000000000". Der Vorgang "read" konnte nicht auf dem Speicher durchgeführt werden.
Ich hoffe mir kann jmd helfen. WEnn CoCreateInstance doch falsch sein sollte, vielleicht hat ja jmd einen Tipp, wie man den IE starten kann, auch wenn schon IE-FEnster offen sind und das Programm so lange wartet, bis man den IE wieder schließt.
Viele Grüße