iE mit C++ ansteuern
-
Wie ist es damit?
int main(void) { IWebBrowser2* pBrowser = NULL; IUnknown* pUnk = NULL; VARIANT varEmpty; BSTR bstrURL; CoInitialize(NULL); if(SUCCEEDED(GetActiveObject(CLSID_InternetExplorer, NULL, &pUnk))) { if(SUCCEEDED(pUnk->QueryInterface(IID_IWebBrowser2, (void**)&pBrowser))) { bstrURL = SysAllocString(L"http://www.c-plusplus.net/"); VariantInit(&varEmpty); pBrowser->Navigate(bstrURL, &varEmpty, &varEmpty, &varEmpty, &varEmpty); VariantClear(&varEmpty); SysFreeString(bstrURL); pBrowser->Release(); } pUnk->Release(); } else { _tprintf(TEXT("Ist der Browser gestartet?\n")); } CoUninitialize(); return(0); }
-
Juhu, das meinte ich.
Ich glaub das hattest du schonmal gepostet und daher wußte ich, das du es wußtest. *grins*
-
-King-, du bist der King :D. (Wie oft hast du diesen Satz eigentlich schon gehört? ;))
cya

-
Hmm...das weiss er bestimmt selber nicht...und mirhilft er nicht viel weiter*g*
Also schnelll!!*terrormach* :p
-
Und warum hilft es dir nicht weiter? Mußt wenigstens schon beschreiben was du willst!
-
Na steht doch oben das ich n Anfänger bin. Ich weiss nichts mit dem Code anzufangen. Ich weiss nicht wo ich den einfügen soll....bei nem Button oder wo? Und wo muss ich was verändern hinzufügen usw....??
-
Dann lern doch erstmal C oder C++ bevor du dich an sowas ranmachst. Das kann ja so nichts werden. Einfach den Code irgendwo hinkopieren bringt nichts.
-
Ist mir klar. Deswegen sage ich das ja auch. Muss ich einen button erstellen und ihn dann dort einfügen? King kann mir das sicher toll erklären:)

-
Du solltest dir mal ein gutes Tutorial durchlesen... wir wär's mit dem hier: http://www.schornboeck.net , das ist das Tutorial von Shade.
cya

[ Dieser Beitrag wurde am 15.01.2003 um 14:51 Uhr von MagiC Creator editiert. ]
-
Hallo und sorry das ich den Thread ausgrabe,
aber ich benötige sowas dringend, meine COM Kenntnisse sind fast NULL, das fast bezieht sich dabei auch nur auf Recherche.
King sein Code funktioniert so bei mir nicht, ich kanns jetzt leider nicht testen, aber vieleicht liegt es daran, das mehr IE Instanzen an sind, ich bräuchte eine Funktion, mit der ich die Instanzen durchgehen kann um dessen URL zu prüfen.
Genauer, ich brauch eine Schleife, wo ich alle IE instanzen durchgehe, ausreichen würde auch ein Codeschnippel, wo ich anhand des HWND des aktiven IE, mir einen IWebBrowser2 binde.
Sorry schlecht beschrieben, also es reicht mir, wenn ich weiß wie ich anhand des HWND des aktiven Fensters (IE) es an einem IWebBrowserObject binden kann.
Vorgang:
ich rufe das HWND des Aktiven Fensters (kann ich)
prüfe zuvor ob es der IE ist (könnte ich durch Titel)
verbinde anhand des Handels diese IE Instanz mit einem IWebBrowser Object (kann ich nicht)
wenn alles klar, kann ich die url überprüfen ist es die richtige hole ich den Quellcode (dürfte ich hinbekommen)Leider spuckte google nur dürftig was aus, irgendeiner hatte in einem Forum geschrieben, das er so ein Code fand, nur leider ist der Thread im Fremdforum noch älter als hier und für Delphi
ich habe gerade ca. 30 google ergebnise um daraus logisch was zu machen, allerdings geht es einmal um ShellObjecte und etc., leider kann ich da nichts raus Kombinieren, und der Code von King geht leider nicht.
Wichtig ist auch, das es für den IE7 gehen muß, ich hoffe hier stolpert einer durch und lach und sagt so und so, Danke.
-
war klar das keiner Antwortet ^^
Dann mach ich das halt,
Mit IShellWindows klapperst du die IE instanzen ab und kannst sie an einem IWebBrowser2 bindenach scheiß, hier haste code, kann man eh nem Neuling schlecht erklären
HRESULT hr = CoInitialize(NULL); if (SUCCEEDED(hr)) { IShellWindows* psw; if (SUCCEEDED(CoCreateInstance(CLSID_ShellWindows, NULL, CLSCTX_LOCAL_SERVER, IID_IShellWindows,(LPVOID *)&psw))) { VARIANT v = { VT_I4 }; if (SUCCEEDED(psw->get_Count(&v.lVal))) { // Hier gehe ich mal rückwerts, falls man ein Fenster schliesst while (--v.lVal >= 0) { IDispatch *pdisp; if (S_OK == psw->Item(v, &pdisp)) { IWebBrowser2 *pwb; if (SUCCEEDED(pdisp->QueryInterface(IID_IWebBrowser2,(void**)&pwb))) { //pwb->Quit(); damit kann man nen Fenster schliessen BSTR ln; hr = pwb->get_LocationName(&ln); _bstr_t st; st.Assign(ln); MessageBox(NULL,st ,"IE Titel",MB_OK); // den Titel ausgeben // hier könnte man noch mehr machen mit pwb (IWebBrowser2) pwb->Release(); } pdisp->Release(); } } } psw->Release(); } CoUninitialize();Rest kannst dir selbst zusammen schustern