IE als Com-Object / alternative

07/25/2012 19:17 0racle.#1
Hi,

ich möchte von wxWidgets weg und versuche nun es direkt in C++.

Bei Visual Studio habe ich"neues Projekt" --> "Windows-Form Anwendung" ausgewählt.

Mein ursprünglicher Plan war einfach den Internet Explorer als Com-Object zu laden und darüber Bots zu schreiben. Jetzt finde ich aber den IE nicht als ActiveX Element. Also kann ich es nicht.

Da habe ich mir unter Steuerelement das Element "Webbrowser" ausgewählt.

Eigentlich möchte ich nur den IE komfortabel steuern, d.h. schön Elemente auslesen und Formulare absenden, Buttons anklicken. Damit erhoffe ich mir alles von der Seite richtig zu laden: Css, Html, JS, Werbung, .... um nicht aufzufallen.

Irgendwie wird durch "Webbrowser" der IE6 genommen? Warum nicht mein IE8?

Gibt es da ein gutes Tutorial. Ich fand keines (schande über mein Haupt, falls es doch eines gibt.) Würde auch nichts gegen MFC sagen und das nutzen.

KEIN autoit oder sonstiges!

Danke im Voraus.
07/25/2012 20:27 Xijezu#2
Bei MFC hättest du die Alternative, beim erstellen des Projektes ein "HTML-Dialog Basierende Anwendung" (sollte sogar so heißen im Menu) auszuwählen.
Dieser benutzt zwar auch den IE (und, wenn ich mich nicht irre, auch den IE 6 (welcher mir mit Javascript damals Probleme gemacht hat)), aber es ist alles editierbar.
Desweiteren ist die CHTMLDialog-Class recht nett, finde ich.
07/26/2012 22:42 0racle.#3
Selbst wenn ich zu C# wechsel wird der IE6 genommen. Schade eigentlich. Das auslesen von Sachen auch ohne MFC. Ich werde nur den IE6 nicht los.

Selbst useragent faken bringt nichts, da die Zielseite js und ajax verwendet und ich somit den IE6 ausschließen kann, da er im Normalbetrieb schon nichts taugt.

Für lauffähige Vorschläge bin ich noch offen.
07/27/2012 22:52 MrSm!th#4
#moved
07/27/2012 23:22 -PinkiWinki-#5
Du musst einen Registry Einträg ändern um eine andere IE Version in dem Control zu nutzen.

Code:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
"contoso.exe"=dword:00002328
Die Beschreibung zu den Codes findest du hier: [Only registered and activated users can see links. Click Here To Register...]
07/30/2012 18:27 0racle.#6
Cool. Vielen Dank.

Dann müsste ich per Programm den Eintrags auslesen und mir merken, ändern und vor dem beenden des Programms wieder zurück ändern. Recht umständlich. Aber Hauptsache es geht.

Wegen "#moved": Eigentlich wollte ich es in C++ schreiben. Ich erwähnte nur, dass die Probleme auch bei C# bestehen.

Trotzdem vielen Dank.
07/30/2012 23:14 MrSm!th#7
Nein, du machst ein C++/CLI Projekt, was ein .NET Projekt ist.