Text ausgabe bei C++



  • blade091 schrieb:

    vortgeschrittener Anfänger

    Fail! 😃

    blade091 schrieb:

    Man muss sich vorstellen, man aht etwas geöffnet, ein Textdokument, Eine Excel Tabelle, Internet Browser etc.
    Wenn das Programm startet soll es in eine Bestimmte Spalte(wie eben zB eine URL Leiste) etwas hininschreiben (was vorher im Program Definiert wurde).
    Was ich nicht meine ist, in ein Dokument etwas zu schreiben (fstream).

    Welches OS? Bevor du diese Frage nicht beantwortest, wird dir kaum einer helfen können.



  • _matze schrieb:

    blade091 schrieb:

    vortgeschrittener Anfänger

    Fail! 😃

    wtf?

    _matze schrieb:

    Welches OS? Bevor du diese Frage nicht beantwortest, wird dir kaum einer helfen können.

    Sorry, Win xp 32bit bzw 7 32bit.



  • Hallo blade091,

    dann such mal in der MSDN bzw. im WinAPI-Forum nach "FindWindow", "SetWindowText" etc. Als Hilfe (um an die Namen der Controls von externen Programmen zu kommen) kannst du die Tools "WinSpy" bzw. "Spy++" (bei VS dabei) benutzen.



  • Th69 schrieb:

    Hallo blade091,

    dann such mal in der MSDN bzw. im WinAPI-Forum nach "FindWindow", "SetWindowText" etc. Als Hilfe (um an die Namen der Controls von externen Programmen zu kommen) kannst du die Tools "WinSpy" bzw. "Spy++" (bei VS dabei) benutzen.

    Danke, werds gleich mal ausprobieren 😉



  • blade091 schrieb:

    _matze schrieb:

    blade091 schrieb:

    vortgeschrittener Anfänger

    Fail! 😃

    wtf?

    Das schreibt man mit 'f'. Ausgerechnet seine Fähigkeiten mit solchen Fehlern zu präsentieren, empfinde ich als fail. Das ist ein bisschen so, als würde man intelligent falsch schreiben, verstehste. 😉 🙂

    Also ich versuch's mal grob aus dem Kopf: du musst natürlich die WinAPI nutzen. Du kannst dir mit EnumWindows alle Fenster enumerieren lassen. Dazu musst du eine Callback-Funktion schreiben, die für jedes Fenster ausgeführt wird. In der hast du dann das jeweilige Fenster-Handle. Und das sollte schon reichen, damit du per SendMessage mit WM_TEXT einen Text an das gewünschte Fenster (in deinem Fall die Textbox mit der URL) schicken kannst. Die genaue Funktionsweise der einzelnen Funktionen und wie die Callback-Funktion auszusehen hat, kannst du - wie immer - der MSDN entnehmen.



  • _matze schrieb:

    blade091 schrieb:

    _matze schrieb:

    blade091 schrieb:

    vortgeschrittener Anfänger

    Fail! 😃

    wtf?

    Das schreibt man mit 'f'. Ausgerechnet seine Fähigkeiten mit solchen Fehlern zu präsentieren, empfinde ich als fail. Das ist ein bisschen so, als würde man intelligent falsch schreiben, verstehste. 😉 🙂

    Alles klar, tut mir leid 😉

    _matze schrieb:

    Also ich versuch's mal grob aus dem Kopf: du musst natürlich die WinAPI nutzen. Du kannst dir mit EnumWindows alle Fenster enumerieren lassen. Dazu musst du eine Callback-Funktion schreiben, die für jedes Fenster ausgeführt wird. In der hast du dann das jeweilige Fenster-Handle. Und das sollte schon reichen, damit du per SendMessage mit WM_TEXT einen Text an das gewünschte Fenster (in deinem Fall die Textbox mit der URL) schicken kannst. Die genaue Funktionsweise der einzelnen Funktionen und wie die Callback-Funktion auszusehen hat, kannst du - wie immer - der MSDN entnehmen.

    Das Versuche ich ma zu Vertiefen 😉



  • Als wenn du das Handle vom entsprechenden Feld hast ist es relativ einfach einen Text hineinzuschreiben. Was ich für problematisch halte ist, wie willst du im Programm das Textfeld auswählen? Du kannst dir natürlich mit FindWindow einen geöffneten Internet Explorer suchen lassen und dann die Childhandles mit EnumWindows so lange durchsuchen, bis deine URL-Leiste gefunden wurde, aber ich glaube nicht dass es so einfach für einen "vortgeschrittenen Anfänger" ist, da etwas generisches zu basteln.



  • Max3000 schrieb:

    Als wenn du das Handle vom entsprechenden Feld hast ist es relativ einfach einen Text hineinzuschreiben. Was ich für problematisch halte ist, wie willst du im Programm das Textfeld auswählen? Du kannst dir natürlich mit FindWindow einen geöffneten Internet Explorer suchen lassen und dann die Childhandles mit EnumWindows so lange durchsuchen, bis deine URL-Leiste gefunden wurde, aber ich glaube nicht dass es so einfach für einen "vortgeschrittenen Anfänger" ist, da etwas generisches zu basteln.

    Soweit hab ich noch Garnich gesacht 😕

    Hab nun mit

    HWND hwnd; 
    hwnd = FindWindow(NULL, "aa - Editor");        // suche Fenster
    

    das Fenster gefunden.
    Kann mir jemand die genaue Anwendung von

    SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);
    

    erklären?
    Kann ich den Inhalt einer Variabel dort einfügen?
    Vielen dank



  • wenn du nicht weißt was SendMessage überhaupt macht, solltest du dich erstmal ausgiebig mit der WinAPI beschäftigen. Wenn du meinst du hast da kein bock drauf und willst das jetzt sofort machen dann kann dir MSDN alle Informationen über die Funktion liefern.

    Ich glaube matze sagte schon dass du eine WM_TEXT - Message senden musst und zwar an das URL-Fenster (nicht an das Fenster vom Browser oder was auch immer). Damit hab ich dir schonma n Hinweis auf zwei Parameter gegeben 😉

    Aber wie gesagt wenn du mit der WinAPI nicht vertraut bist, wirst du die Lösung auch nich hinkriegen... jedenfalls nich alleine



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x) in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten