"internet explorer_server" Komponente auslesen



  • Hallo,

    ich möchte aus einem fremden Programm, welches etwas anzeigt, einen bestimmten String auslesen. Dieses Programm verwendet intern diese Komponente "internet explorer_server", das wird mir angezeigt, wenn ich mit Spy++ drüberschaue. Ich müsste irgendwie an die Labels drankommen (am allerbesten wäre der HTML Quelltext, welcher die Seite aufbaut, falls es sowas gibt), mich interessiert ein bestimmter String.
    Vielleicht jemanden einen Tipp, wie ich da rangehe?
    Hab bis jetzt nur Erfahrung mit auslesen von TextFeldern oder anderen normalen WinApi Controls, diese "internet explorer_server" Komponente ist mir neu.

    Danke!


  • Mod

    Da kommst Du so gar nicht dran. Das ist ein Active-X Control.
    Ohne ein Interface Handle zu haben kannst Du das DOM nicht auslesen.



  • Hmm, und das ist schwierig zu bekommen ? Stichworte / Funktionen usw. die mir weiterhelfen können?


  • Mod

    Ja. Das ist schwierig zu bekommen, weil so etwas eigentlich nur der "Erzeuger" des Objektes bekommt und sonst niemand. Wir reden hier von COM-Schnittstellen und nicht von Fensterhandles und Nachrichten....

    Außer diese Objekte werden in der IROT gespeichert oder es gibt eine zantrale Verwaltung für solche Objekte über die COM Schnittstele.

    Evtl. geht da was mit Browser Helper Objekten, aber mit denen kenne ich mich nicht wirklich aus:
    http://msdn.microsoft.com/en-us/library/bb250436(v=vs.85).aspx



  • HRESULT BrowserFromWindowHandle(HWND hwnd/*internet explorer_server*/, IHTMLDocument2 **ppv)
    {
    	DWORD dwResult;
    	UINT nMsg = RegisterWindowMessage(TEXT("WM_HTML_GETOBJECT"));
    	SendMessageTimeout(hwnd, nMsg, 0, 0, SMTO_ABORTIFHUNG, 1000, &dwResult);
    	return ObjectFromLresult(dwResult, IID_IHTMLDocument2, 0, (void**)ppv);
    }
    

Anmelden zum Antworten