Zeichen aus dem MSDOS-Fenster(XP) auslesen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Zeichen aus dem MSDOS-Fenster(XP) auslesen

Beitrag 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?
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Beitrag 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.
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Schau dir mal auf MSDN die Kategorie "Console" an.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Beitrag 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.
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag 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.
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Beitrag von dysti »

supi @EDEL, habe gegooglet und fündig geworden.
Jetzt muß ich erstmal probieren.
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Antworten