Seite 1 von 1

Zeichen aus dem MSDOS-Fenster(XP) auslesen

Verfasst: 19.05.2007 06:35
von dysti
Hey,
ich möchte ausschließlich aus dem MSDOS-Fenster (Eingabeaufforderung) unter XP die Buchstaben (ASCII-Zeichen) zeilenweise auslesen.
Es gibt folgende Probleme:
Wie kann ich die ID/ Handle des MSDOS-Fenster herausbekommen?
Wie kann ich Zeile für Zeile die Zeichen aus diesem Fenster auslesen?

Was soll das Ziel sein?
Ich starte eine Anwendung im MSDOS-Fenster.
In einem Thread läuft das PB-PRG und liest die erste Zeile aus.
Diese Zeile wird akustisch über eine Sprachausgabe ausgegeben.
Der Anwender drückt eine bestimmte Taste und die nächste Zeile wird eingelesen und in der Sprachausgabe ausgegeben.
Die Sprachausgabe ist schon realisiert.

Das das keine Spionageprogramm werden soll, erkennt ihr sicherlich und auch die Zielgruppe, oder?

Verfasst: 19.05.2007 16:32
von ts-soft
>> MSDOS-Fenster (Eingabeaufforderung)
MSDOS-Fenster <> Eingabeaufforderung, ausser unter Win9x
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Dokumente und Einstellungen\Thomas>command.com
Microsoft(R) Windows DOS
(C)Copyright Microsoft Corp 1990-2001.

C:\DOKUME~1\THOMAS>
Jetzt ist es DOS, aber das meinste bestimmt nicht, zumal diese
DOS-Emulation auf vielen Rechnern deaktiviert ist.

Verfasst: 20.05.2007 13:07
von dysti
Hallo TS-SOFT,
Jetzt ist es DOS, aber das meinste bestimmt nicht, zumal diese
DOS-Emulation auf vielen Rechnern deaktiviert ist.
Auf diesen speziellen Rechner nicht.

Es geht im ersten Schritt erstmal darum, wenn die MSDOS-Eingabeaufforderung mit "cmd" gestartet ist, mit dem PB-Prg das Handle zu ermitteln.

Dann starte ich eine MSDOS-Anwendung oder gebe z.B. den Befehl "dir" ein.
Jetzt habe ich ja im Fenster eine Anzeige.

Nun möchte ich mit dem PB-Prg diese Zeilen von oben nach unten zeilenweise auslesen.

Im dritten Schritt übergebe ich jeder Zeile einer Sprachausgabe.
Wenn z.B. in der ersten Zeile des Fensters "Hallo Thomas" steht, soll als Endziel "Hallo Thomas" akustisch ausgegeben werden.
Gleichzeitig bekommt die Brillzeile einer Blindentastatur die entsprechenden Signale.
So kann ein nicht sehender PC-Anwender den Computer bedienen.

Also nochmals konkret mein Anliegen:
Wie ermittel ich die Fenster-Id der MSDOS-Eingabeaufforderung?
Wie kann ich im geöffneten Fenster eine Zeile auslesen?

Hat von den Spezialisten nicht einer ansatzweise eine Idee?
Habe die WIN-API schon durchgeforstet, aber irgendwie komme ich dort nicht weiter.
Vielleicht hat ja einer eine Idee, wo ich speziell schauen sollte.

Verfasst: 20.05.2007 13:44
von edel
Schau dir mal auf MSDN die Kategorie "Console" an.

Verfasst: 20.05.2007 13:47
von ts-soft
>> Es geht im ersten Schritt erstmal darum, wenn die MSDOS-Eingabeaufforderung mit "cmd" gestartet ist
Mit cmd wird die Eingabeaufforderung gestartet, aber kein MSDOS :mrgreen:
Jedenfalls nicht unter W2K/XP usw.
Nur mit command wird DOS, bzw. DOS-Emulation gestartet!

Verfasst: 21.05.2007 09:43
von dysti
Thomas, ok, also command.
@edel: da werde ich mal genauer schauen

Trotzdem bleibt das Problem:
(Jetzt korrekt nach Thomas Hinweis) :freak:
Also nochmals konkret mein Anliegen:
Wie ermittel ich die Fenster-Id bei Aufruf von "command"?
Wie kann ich im geöffneten Command-Fenster eine Zeile auslesen?

Hat von den Spezialisten nicht einer ansatzweise eine Idee?
Habe die WIN-API schon durchgeforstet, aber irgendwie komme ich dort nicht weiter.

Verfasst: 21.05.2007 15:32
von edel
Findwindow oder ueber den Programm-Namen.

Ab XP gibt es die Api Attachconsole. Damit ist es ein leichtes das in/out Handle einer Console zu bedienen.

Verfasst: 21.05.2007 21:04
von dysti
supi @EDEL, habe gegooglet und fündig geworden.
Jetzt muß ich erstmal probieren.