Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Systemmenu bedienen

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 <
000
28.07.2005, 14:16 Uhr
ziba



Hallo,

ich möchte per C++ - Programm das Systemmenu der Eingabeaufforderung (cmd) bedienen, um die Daten die ein DOS- Programm anzeigt auszulesen.
Über das Handle zum Konsolfenster hole ich mir das Menu und kann auch die Anzahl der MenuItems und deren IDs auslesen.

hMenu = GetSystemMenu(hConsoleHandle, FALSE);
hEditMenu = GetSubMenu(hMenu,7);
int id = GetMenuItemID(hEditMenu,4);

Der allgemeine Zugriff geht also.
Wie kann ich aber jetzt einen der Menupunkte per Programm bedienen.
Hab schon ne Weile vergeblich gesucht.
Vielleicht hat jemand ne Idee.

gruss ziba
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
28.07.2005, 15:12 Uhr
Airdamn



Du kannst die Ausgabe auch in eine Datei umlenken per test.exe > ausgabe.txt
falls das hilft...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
28.07.2005, 15:31 Uhr
ziba



Hilft mir leider nicht. Das funktioniert zwar prinzipiell mit Konsolprogrammen, aber bei dem alten DOS- Programm, das ich steuern möchte, werden nur meine Eingaben in die Datei umgeleitet/weitergeleitet und nicht die Oberflächen und Meldungen, die das Programm anzeigt.

Danke trotzdem für die Idee

Dieser Post wurde am 28.07.2005 um 15:31 Uhr von ziba editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
29.07.2005, 08:28 Uhr
ziba



Bin schon ein Stück weiter.
Mit

SendMessage(hConsole,WM_SYSCOMMAND,(WPARAM)testId,0);

kann ich zumindest mal die Hauptmenüpunkte bedienen. Ich brauch aber das Untermenü von "bearbeiten". Da komm ich aber nicht über die Id des Menüpunktes ran.
Keine Ahnung warum.
Jemand ne Idee?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
29.07.2005, 08:43 Uhr
Tommix



Hallo,
wenn Du einen Teil des Fensterinhaltes auslesen willst, ist es womöglich einfacher dies mit ReadConsoleOutput zu machen:

Zitat von MSDN:

ReadConsoleOutput
The ReadConsoleOutput function reads character and color attribute data from a rectangular block of character cells in a console screen buffer, and the function writes the data to a rectangular block at a specified location in the destination buffer.

C++:
BOOL ReadConsoleOutput(
  HANDLE hConsoleOutput,  // handle to a console screen buffer
  PCHAR_INFO lpBuffer,    // address of buffer that receives data
  COORD dwBufferSize,     // column-row size of destination buffer
  COORD dwBufferCoord,    // upper-left cell to write to
  PSMALL_RECT lpReadRegion   // address of rectangle to read from
);


...



Gruß, Tommix

--
13

Dieser Post wurde am 29.07.2005 um 08:44 Uhr von Tommix editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ 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: