Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » SendMessage

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
22.07.2011, 13:36 Uhr
TOSHMAX



Die Konsole besteht auch nur aus dem einem Fenster, das du gefunden hast. Wenn du in WinSpy auf den Reiter "Windows" klickst, siehst du, dass es keine Child Windows enthält.
Allerdings wird die Konsole nur reagieren, wenn sie auch Eingaben annehmen kann. D. h. mit der Konsole die sich mit deinem Programm öffnet wird das nicht funktionieren, da sie keine Eingabe erwartet.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
22.07.2011, 14:12 Uhr
Napsta



Gibt es eine Möglichkeit text an den cmd zu senden, sowie beim Notepad?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
22.07.2011, 15:16 Uhr
TOSHMAX



Ja, indem du die Zeile mit FindWindowEx weglässt und statt dem "Unbenannt - Notepad" den Titel der Eingabeaufforderung einträgst.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
24.07.2011, 15:29 Uhr
Napsta



Geht leider bei mir nicht:

Code:

C++:
char text[512] = "say Test";
    HWND hWnd = FindWindow(NULL, L"Eingabeaufforderung");
    hWnd = FindWindowEx(hWnd, 0, L"Eingabeaufforderung", NULL);
    SendMessageA(hWnd, WM_SETTEXT, NULL, (LPARAM)text);
    PostMessage(hWnd, WM_KEYUP, VK_RETURN, NULL);
    PostMessage(hWnd, WM_KEYUP, VK_RETURN, 1 << 31);



Bin dankbar für jede hilfreiche Information.

Dieser Post wurde am 24.07.2011 um 15:31 Uhr von Napsta editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
24.07.2011, 15:44 Uhr
Napsta



Mit einzelnen Bustaben kann ich ja aber nicht mit nem Satz
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
24.07.2011, 17:29 Uhr
TOSHMAX



Mit WM_SETTEXT kannst du nur den Titel des Fensters bestimmen, keine Eingaben simulieren.
Außerdem muss das erste WM_KEYUP zu einem WM_KEYDOWN werden, da du die Taste zuerst drücken musst um sie loszulassen.

Leider kannst nur einzelne Buchstaben senden, allerdings kann man sowas in eine Funktion packen, die dann einen ganzen Satz verarbeitet.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
24.07.2011, 19:49 Uhr
Napsta



Schade das es nicht mit WM_SETTEXT in der Konsole geht. Es hat aber bei dem Editor funktioniert. Gibt es da keine Möglichkeit in eine andere Konsole zu schreiben(Ich meine einen Satz)?

Ich würde gerne die Zeit in die Konsole schreiben, mit der tm Strucktur, gibt es da eine Möglichkeit?


PS. Ich habe mich schon gewundert warum es nicht mit WM_SETTEXT nicht geht bei der Konsole.


Viele Grüße Napsta

Dieser Post wurde am 24.07.2011 um 19:51 Uhr von Napsta editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
24.07.2011, 20:34 Uhr
TOSHMAX



Hier mal ein kleines Beispiel, wie man es machen kann:

C++:
#include <windows.h>
#include <ctype.h>

void simulate_text_input(HWND hWnd, const char* Text)
{
    for(; *Text; ++Text) {
        if(isalpha(*Text)) {
            WPARAM wParam = toupper(*Text);

            PostMessage(hWnd, WM_KEYDOWN, wParam, 0);
            PostMessage(hWnd, WM_KEYUP, wParam, 1 << 31);
        } else {
            PostMessage(hWnd, WM_KEYDOWN, VK_SPACE, 0);
            PostMessage(hWnd, WM_KEYUP, VK_SPACE, 1 << 31);
        }
    }
}

Es kann leider nur die Tasten von a-z und keine Großbuchstaben. Shift zu simulieren ist nicht so ohne weiteres möglich. Das könnte man denke ich mit keybd_event realisieren, allerdings muss das Fenster dazu den Fokus haben.

WM_SETTEXT setzt den Titel eines Fensters. Beim Notepad funktioniert das, weil der Titel des Edit-Fensters der gleiche ist, wie der Inhalt, der angezeigt wird. Bei der Konsole sind diese Dinge allerdings getrennt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
24.07.2011, 21:17 Uhr
Napsta



Danke für die Hilfe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: