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 ]
000
21.07.2011, 09:20 Uhr
Napsta



Guten Morgen,

Ich habe wieder einmal ne Frage. Ich will eine Nachricht an einem Editor schicken
(der Editor ist offen), und das Programm soll danach enter drücken. Ich habe es schon gegoogelt, habe auch einige Beispiele gefunden, aber die haben sich meist auf PostMessage();
ect. bezogen. Ich würde es gern mit SendMessage(); machen.
Schonmal danke im vorraus.

MFG Napsta


Hier ein Teil vom Code:

C++:
    HWND window = FindWindow(NULL, L"test - Editor");
    ShowWindow(window, SW_SHOWMAXIMIZED);
    SendMessage(window, WM_KEYDOWN, NULL, (LPARAM)'hi');

Dieser Post wurde am 21.07.2011 um 09:21 Uhr von Napsta editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
21.07.2011, 09:28 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


naja du musst für jeden tastendruck, JEWEILS ein WM_KEYDOWN und WM_KEYUP mit entsprechenden Parametern senden, sonst nimmt er das nicht an
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
21.07.2011, 10:59 Uhr
Napsta



Danke für die schnelle Antwort, werde es gleich mal ausprobieren
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
21.07.2011, 11:21 Uhr
Napsta



Hmm es funktioniert nicht, ich weiß leider nicht warum...


C++:
    HWND window = FindWindow(NULL, L"test - Editor");
    LPARAM button = 0x0D;
    SendMessage(window, WM_KEYDOWN, NULL, button);
    SendMessage(window, WM_KEYUP, NULL, button);
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
21.07.2011, 11:25 Uhr
Napsta



Ich habe es auch mit VK_RETURN versucht, das funktioniert aber auch nicht
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
21.07.2011, 13:45 Uhr
TOSHMAX



Du schickst deine Nachricht an das Notepad Fenster, allerdings muss es zu seinem Eingabefeld gesendet werden.

C++:
HWND hWnd = FindWindow(0, "Unbenannt - Editor");
hWnd = FindWindowEx(hWnd, 0, "Edit", 0);

PostMessage(hWnd, WM_KEYDOWN, VK_RETURN, 0);
PostMessage(hWnd, WM_KEYUP, VK_RETURN, 1 << 31);

So funktioniert es bei mir unter Windows XP. Wenn du es korrekt machen willst, müsstest du auch noch die Scancodes und einige Bits mit übergeben. Aber ich denke für Notepad sollte das reichen. Das kannst du hier nachlesen:WM_KEYDOWN WM_KEYUP
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
21.07.2011, 14:50 Uhr
Napsta



Danke für die Antwort
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
21.07.2011, 19:40 Uhr
Napsta



Tut mir leid, Ich hab noch ne Frage.

Beim Beitrag von TOSHMAX bei FindWindowEx, der dritte Parameter, wie hast du den herausgefunden? Weil es muss ja mehr geben. als nur "Edit".

Schonmal danke im voraus.

MFG Napsta

Dieser Post wurde am 21.07.2011 um 19:41 Uhr von Napsta editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
22.07.2011, 11:48 Uhr
TOSHMAX



Jedes Fenster baut auf einer Klasse auf, hier "Edit" für Eingabefelder. Andere Standard Windows Klassen sind z.B. "Button" oder "Static".

FindWindowEx sucht hier im Notepad nach einem Kind-Fenster mit der Klasse "Edit". Herausfinden kannst du sowas z. B. mit WinSpy.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
22.07.2011, 12:31 Uhr
Napsta



Ah danke habe es gleich mal ausprobiert und funktioniert
Ich wollte in ein Konsolenfenster was rein schreiben, ich habe nach dem Handle gesucht, aber
ich habe nur den Handle für die Konsole(ConsoleWindowClass) gefunden, aber keins für die Eingabe.

Was kann ich da Tun? Gibt es da was für die Konsole?

Dieser Post wurde am 22.07.2011 um 12:32 Uhr von Napsta editiert.
 
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: