Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Tastatureingaben auf einem anderen (DOS)-PC simulieren (https://www.delphipraxis.net/172797-tastatureingaben-auf-einem-anderen-dos-pc-simulieren.html)

kekel 23. Jan 2013 12:13

Tastatureingaben auf einem anderen (DOS)-PC simulieren
 
Hallo zusammen,

ich würde gerne 2 PC (PC_Win und PC_Dos) so miteinander verbinden, dass ich vom ersten PC(PC_Win) Tastaturbefehle auf dem zweiten PC (PC_Dos)simulieren kann.

Im Detail:
  • PC_Win = PC mit Windows-Betriebsystem. Auf diesem PC soll mein Programm laufen.
  • PC_Dos = PC mit einem anderen Betriebsystem, z.B. MS-DOS. Auf diesem PC befindet sich zur Ansteuerung einer Maschine eine Eingabemaske für Daten.

Die Daten, die ein Benutzer bislang in die Eingabemaske von PC_Dos via Tastatur eingibt, sind mir bekannt. Daher würde ich diesen Vorgang gerne automatisieren. Eigentlich habe ich recht viel Programmiererfahrung, aber hier stehe ich völlig auf dem Schlauch. In meiner ersten Überlegung dachte ich ganz unbedarft an eine Verbindung zwischen PC_Win und PC_Dos über die serielle Schnittstelle. Diese Verbindung klappt prinzipell auch, aber nur zwischen 2 Windows-PC die beide mein Programm aktiv haben. Da ich aber einfach so tun möchte, als ob PC_Win eine Tastatur ist (so soll es sich zumindest für den PC_Dos darstellen) ist diese Vorgehensweise am Ziel vorbei.

Ich hoffe ich konnte mich verständlich ausdrücken.
Kann mir irgend jemand mit ein paar Ideen auf die Sprünge helfen? Falscher Ansatz?

Ich freue mich über wirklich jeden Gedanken zu diesem Thema.

Ich programmiere zur Zeit mit Delphi-XE und Delphi 7

Olli73 23. Jan 2013 13:55

AW: Tastatureingaben auf einem anderen (DOS)-PC simulieren
 
Zitat:

Zitat von kekel (Beitrag 1200225)
In meiner ersten Überlegung dachte ich ganz unbedarft an eine Verbindung zwischen PC_Win und PC_Dos über die serielle Schnittstelle. Diese Verbindung klappt prinzipell auch, aber nur zwischen 2 Windows-PC die beide mein Programm aktiv haben. Da ich aber einfach so tun möchte, als ob PC_Win eine Tastatur ist (so soll es sich zumindest für den PC_Dos darstellen) ist diese Vorgehensweise am Ziel vorbei.

Kannst du evtl. die Standardeingabe für das DOS-Programm auf COM1: umleiten?

Was hast du denn ansonsten noch für Anschlussmöglichkeiten außer COM-Port?

gammatester 23. Jan 2013 14:08

AW: Tastatureingaben auf einem anderen (DOS)-PC simulieren
 
Für sowas gibt es normalerweise den CTTY-Befehl, probieren kost ja nix:wink:
Gruß Gammatester
Zitat:

CTTY

Wechselt das zur Steuerung Ihres Computers verwendete Ein- /Ausgabegerät.

Verwenden Sie den Befehl CTTY, wenn Sie ein anderes Gerät zur Eingabe von
Befehlen verwenden möchten.

Syntax

CTTY Gerät

Parameter

Gerät
Bezeichnet das Alternativgerät, das MS-DOS verwenden soll. Gültige Werte
für den Parameter Gerät sind: PRN, LPT1, LPT2, LPT3, CON, AUX, COM1,
COM2, COM3 und COM4.

Zugehöriger Befehl

Weitere Informationen über das Wechseln des Eingabegeräts beim Festlegen
eines Befehlsinterpreters finden Sie bei der Beschreibung des Befehls
<COMMAND>.

kekel 23. Jan 2013 16:25

AW: Tastatureingaben auf einem anderen (DOS)-PC simulieren
 
@Olli73
das DOS-Programm bietet leider keine Möglichkeit die Eingabemöglichkeit zu ändern. Als weitere Anschlussmöglichkeit habe ich nur noch einen alten DIN-Tastaturanschluss ... aber wie kann man den denn unter Delphi ansteuern? :pale:

@Gammatester
Ja, über CTTY habe ich auch bereits nachgedacht. Es handelt sich hierbei aber um insgesamt drei Maschinen. Eine davon läuft unter MS-DOS 3.1 ... da gibt es CTTY noch nicht, glaube ich. Die zweite läuft unter OS9. Ja, ist schon richtig. OS9 gibt es tatsächlich als Betriebsystem.
Daher auch meine Idee dem jeweiligen Rechner einfach vorgaukeln dass mein Windows-PC eine Tastatur ist.


@alle
Danke für die schnelle Reaktion. Hat sonst noch jemand eine Idee?

kamel08 23. Jan 2013 16:43

AW: Tastatureingaben auf einem anderen (DOS)-PC simulieren
 
Hallo,

früher habe ich gerne mit dem Tastaturpuffer gearbeitet.
Mein Lösungsansatz wäre: Ein Pascal-Programm auf dem Dos-Rechner installieren,
das den Text in den Tastaturpuffer schreibt.
Ausgelöst wird das ganze von dem Windows-Rechner über TCP oder Parallele Schnittstelle etc.

Viele Grüße

Olli73 23. Jan 2013 16:50

AW: Tastatureingaben auf einem anderen (DOS)-PC simulieren
 
Zitat:

Zitat von kekel (Beitrag 1200280)
das DOS-Programm bietet leider keine Möglichkeit die Eingabemöglichkeit zu ändern.

Also auch nicht in der Art "programm.exe < COM1:" ?

Zitat:

Zitat von kekel (Beitrag 1200280)
@Olli73
Als weitere Anschlussmöglichkeit habe ich nur noch einen alten DIN-Tastaturanschluss ... aber wie kann man den denn unter Delphi ansteuern?

Mit etwas (selbstgebastelter?) Hardware dazwischen sollte das funktionieren.

kekel 23. Jan 2013 17:50

AW: Tastatureingaben auf einem anderen (DOS)-PC simulieren
 
Zitat:

Zitat von kamel08 (Beitrag 1200286)
Hallo,

früher habe ich gerne mit dem Tastaturpuffer gearbeitet.
Mein Lösungsansatz wäre: Ein Pascal-Programm auf dem Dos-Rechner installieren,
das den Text in den Tastaturpuffer schreibt.
Ausgelöst wird das ganze von dem Windows-Rechner über TCP oder Parallele Schnittstelle etc.

Viele Grüße

Das ist sicher eine gute Idee ... funktioniert bei mir aber leider nicht.
Zum einen ist einer der Computer nicht mit Dos sondern mit OS9 ausgestattet. Und OS9 kennt meines Wissens keinen Tastaturpuffer. Und ein Programm zum füllen des möglicherweise doch vorhandenen Tastaturpuffers kann ich für OS9 nicht erstellen.
Dazu kommt: Nach der Eingabe einiger Werte erfolgt das Bestätigen mit "Enter" Und danach muss ich dem Programm Zeit zum arbeiten geben, also eine gewisse Zeit warten.

Danke

zeras 23. Jan 2013 17:58

AW: Tastatureingaben auf einem anderen (DOS)-PC simulieren
 
Zitat:

Zitat von kamel08 (Beitrag 1200286)
Hallo,

früher habe ich gerne mit dem Tastaturpuffer gearbeitet.
Mein Lösungsansatz wäre: Ein Pascal-Programm auf dem Dos-Rechner installieren,
das den Text in den Tastaturpuffer schreibt.
Ausgelöst wird das ganze von dem Windows-Rechner über TCP oder Parallele Schnittstelle etc.

Viele Grüße

Das ist, so denke ich, die beste Lösung. Wenn möglich, über serielle Schnittstelle die Codes übertragen und dann in den Tastaturpuffer schreiben. Dafür sollte es ja bei den alten Kisten noch Softwareinterrupts geben. Ich müßte im Keller noch ein altes Buch für DOS haben, wo alle Interrupts beschrieben sind. Wenn du willst schaue ich noch mal nach, ob ich das Buch finde. Da könnte ich dir vielleicht noch einige Tipps geben.

Wenn du über den DIN-Anschluss der Tastatur gehen willst, wirst du noch einen kleinen Controller zwischenschalten müssen, der die Befehle über eine serielle Schnittstelle empfängt und dann die Scancodes der Tastatur nachbildet. Wird aber ein wenig Arbeit machen. Aber vielleicht gibt es da schon fertige Lösungen bei den Hobbybastlern.

kekel 23. Jan 2013 18:00

AW: Tastatureingaben auf einem anderen (DOS)-PC simulieren
 
Zitat:

Zitat von Olli73 (Beitrag 1200288)
Zitat:

Zitat von kekel (Beitrag 1200280)
das DOS-Programm bietet leider keine Möglichkeit die Eingabemöglichkeit zu ändern.

Also auch nicht in der Art "programm.exe < COM1:" ?

:?: Das weiß ich jetzt nicht so ganz genau. Aber auch hier wieder das Problem mit dem OS9-Rechner. Die Lösung sollte am besten allgemeingültig sein. Also die Maschinenrechner vorzugsweise so lassen wie sie sind.

Zitat:

Zitat von kekel (Beitrag 1200280)
Zitat:

@Olli73
Als weitere Anschlussmöglichkeit habe ich nur noch einen alten DIN-Tastaturanschluss ... aber wie kann man den denn unter Delphi ansteuern?
Mit etwas (selbstgebastelter?) Hardware dazwischen sollte das funktionieren.

Hmmm... kann man denn mit einem Adapter vom Com-Port auf DIN-Tastaturanschluss kommen?
:wiejetzt: Dann wäre das doch vielleicht der richtige Ansatz. Kennt sich damit jemand aus?

kekel 23. Jan 2013 18:07

AW: Tastatureingaben auf einem anderen (DOS)-PC simulieren
 
Zitat:

Zitat von zeras (Beitrag 1200303)

Wenn du über den DIN-Anschluss der Tastatur gehen willst, wirst du noch einen kleinen Controller zwischenschalten müssen, der die Befehle über eine serielle Schnittstelle empfängt und dann die Scancodes der Tastatur nachbildet. Wird aber ein wenig Arbeit machen. Aber vielleicht gibt es da schon fertige Lösungen bei den Hobbybastlern.

Oje, ich glaube ich habe da ein gewaltiges Wissensdefizit. :? Ich hatte mir eigentlich sowas wie KeyCode bzw. Ascii-Code vorgestellt. Was bitte sind denn Scancodes? Wenn ich bei ner Tastatur auf eine Taste drücke, so sendet die ja irgendwas zum Computer. ... ... Genau das will ich auch senden:x


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:01 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz