Autor |
Beitrag |
OliverN_26
      
Beiträge: 252
Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
|
Verfasst: Do 12.04.12 17:57
Hi
Ich bin mit meinem Latain absolut am Ende und ihr seid meine letzte Hoffnung.
Ich wähle mich per Telnet (ICS Komponente "TnEmulVT") auf einer AS400 ein.
Ich komm soweit soweit super klar, "WENN" da nicht die F-Tasten wären. F1-F12 habe ich mittlerweile hinbekommen, aber ab und an benötigen wir "F18" und "F19" und ich habe keinen Schimmer wie ich die F-Tasten ab F12 aktiviert bekomme, da ich mittlerweile alles Erdenkliche (meines Wissens) versucht habe.
1. Frage
--------
Kennt jemand eine Alternative Komponente, die keine derartigen Schwierigkeiten hat und gleichzeitig leicht zu bedienen ist?
2. Frage
--------
Hier ist ein Auszug aus der Datei "emulvt.pas", in der das Key-Mapping deklariert ist. Vielleicht kennt sich ja jemand damit aus und kann mir sagen was ich machen muß, um die F-Tasten über F12 zu aktivieren.
P.s.: die komplette Datei hab ich im Anhang vorsichtshalber beigefügt
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39:
| FKeys2 : TFuncKeysTable = ( (ScanCode: #$48; Shift: []; Ext: TRUE ; Value: #$1B + '[A'), (ScanCode: #$50; Shift: []; Ext: TRUE ; Value: #$1B + '[B'), (ScanCode: #$4D; Shift: []; Ext: TRUE ; Value: #$1B + '[C'), (ScanCode: #$4B; Shift: []; Ext: TRUE ; Value: #$1B + '[D'), (ScanCode: #$49; Shift: []; Ext: TRUE ; Value: #$1B + '[5~'), (ScanCode: #$51; Shift: []; Ext: TRUE ; Value: #$1B + '[6~'), (ScanCode: #$52; Shift: []; Ext: TRUE ; Value: #$1B + '[2~'), (ScanCode: #$53; Shift: []; Ext: TRUE ; Value: #$7F ), (ScanCode: #$3B; Shift: []; Ext: FALSE; Value: #$1B + '[11~'), (ScanCode: #$3C; Shift: []; Ext: FALSE; Value: #$1B + '[12~'), (ScanCode: #$3D; Shift: []; Ext: FALSE; Value: #$1B + '[13~'), (ScanCode: #$3E; Shift: []; Ext: FALSE; Value: #$1B + '[14~'), (ScanCode: #$3F; Shift: []; Ext: FALSE; Value: #$1B + '[15~'), (ScanCode: #$40; Shift: []; Ext: FALSE; Value: #$1B + '[17~'), (ScanCode: #$41; Shift: []; Ext: FALSE; Value: #$1B + '[18~'), (ScanCode: #$42; Shift: []; Ext: FALSE; Value: #$1B + '[19~'), (ScanCode: #$43; Shift: []; Ext: FALSE; Value: #$1B + '[20~'), (ScanCode: #$44; Shift: []; Ext: FALSE; Value: #$1B + '[21~'), (ScanCode: #$57; Shift: []; Ext: FALSE; Value: #$1B + '[23~'), (ScanCode: #$58; Shift: []; Ext: FALSE; Value: #$1B + '[24~'), (ScanCode: #$64; Shift: []; Ext: FALSE; Value: #$1B + '[25~'), (ScanCode: #$65; Shift: []; Ext: FALSE; Value: #$1B + '[26~'), (ScanCode: #$66; Shift: []; Ext: FALSE; Value: #$1B + '[28~'), (ScanCode: #$67; Shift: []; Ext: FALSE; Value: #$1B + '[29~'), (ScanCode: #$68; Shift: []; Ext: FALSE; Value: #$1B + '[31~'), (ScanCode: #$69; Shift: []; Ext: FALSE; Value: #$1B + '[32~'), (ScanCode: #$6A; Shift: []; Ext: FALSE; Value: #$1B + '[33~'), (ScanCode: #$6B; Shift: []; Ext: FALSE; Value: #$1B + '[34~'), (ScanCode: #$6C; Shift: []; Ext: FALSE; Value: '' ), (ScanCode: #$6D; Shift: []; Ext: FALSE; Value: '' ), (ScanCode: #$6E; Shift: []; Ext: FALSE; Value: '' ), (ScanCode: #$76; Shift: []; Ext: FALSE; Value: '' ), (ScanCode: #$00; Shift: []; Ext: FALSE; Value: '' ), (ScanCode: #$00; Shift: []; Ext: FALSE; Value: '' ), . . . . . . |
Vielleicht ist noch erwähnenswert das ich mir die SCANCODES und VALUES selber aus dem Netz zusammen gesucht habe.
1000 Dank im voraus falls es wirklich jemand gibt, der mir da weiter hilft.
lg
Oli
Einloggen, um Attachments anzusehen!
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 12.04.12 20:07
Moin!
Wo ist denn das Problem: Wireshark und mitlesen, dann kannst du das doch auch selbst senden.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
OliverN_26 
      
Beiträge: 252
Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
|
Verfasst: Fr 13.04.12 10:14
Morgen
WireShark hab ich jetzt drauf aber ich versteh leider nur Bahnhof bei dem was er da mitschneidet
Wie kann ich denn erkennen WO meine Eingabe ist und WAS gesendet wird?
Desweiteren weiß ich nicht so richtig ob mir das weiter hilft, denn das Problem ist ja nicht direkt das ich nicht weiss was gesendet werden müsste! Das lässt sich rausfinden oder mit KeyMapping so optimieren, dass es für mich passt. Es scheint aber, als ob "SHIFT" / "ALT" / "CTRL" gar nicht aktiviert ist, denn da kommt 0 Reaktion, wenn ich eine der Tasten drücke.
Ich weiß halt nicht ob ich von vornherein schon was falsch mache. F1-F12 hab ich ja auch hinbekommen. Was ich so im Netz gelesen habe scheint das Problem über F12 nicht unbekannt zu sein.
Vielen Dank vorab
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 13.04.12 13:17
Moin!
OliverN_26 hat folgendes geschrieben : | WireShark hab ich jetzt drauf aber ich versteh leider nur Bahnhof bei dem was er da mitschneidet
Wie kann ich denn erkennen WO meine Eingabe ist und WAS gesendet wird? |
Du brauchst natürlich einen Filter, der nur Pakete, die auf deinem sendenden Port oder auf dem antwortenden Port des Server reagieren. Dann hast du nur noch die Kommunikation der Anwendung.  Deine eigenen Eingaben ("WAS") solltest du wiedererkennen, du hast den Inhalt ja schließlich selbst erzeugt (ggfs. halt um das Protokoll erweitert, keine Ahnung, Telnet? hab ich grad nicht auswendig derauuf, musste halt im RFC nachlesen, wie die Pakete gebaut sind; das sollte aber alles praktisch Klartext sein). Wenn du dann die Ausgaben des Servers mit der Bildschirmanzeige vergleichst, sollten sich Ähnlichkeiten zeigen.
OliverN_26 hat folgendes geschrieben : | Desweiteren weiß ich nicht so richtig ob mir das weiter hilft, denn das Problem ist ja nicht direkt das ich nicht weiss was gesendet werden müsste! |
Wenn du doch weißt, was du senden musst, warum funktioniert´s dann nicht?  Ich habe dein Problem bisher so verstanden, dass du nicht weißt, mit welchem Code ein Fx übertragen wird. Wenn du das per manueller Eingabe machst und dabei in Wireshark "zusiehst", dann hast du den Code. Das war mein Ansatz.
OliverN_26 hat folgendes geschrieben : | Es scheint aber, als ob "SHIFT" / "ALT" / "CTRL" gar nicht aktiviert ist, denn da kommt 0 Reaktion, wenn ich eine der Tasten drücke.
Ich weiß halt nicht ob ich von vornherein schon was falsch mache. |
Geht´s denn manuell? Also nur in deiner Anwendung hakt´s?
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
OliverN_26 
      
Beiträge: 252
Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
|
Verfasst: Fr 13.04.12 13:59
Hi
genau da ist das Problem. Manuell geht es auch nicht. Wenn ich es aber z.B. mit Putty versuche gehts wunderbar. Hab auch schon versucht mit nem KeyMapping Programm die Taste F19 auf "p" (nur zu Testzwecken) zu legen. Mit Putty gehts aber mit meiner Komponente tut sich nix .. so als ob er diese Taste nich kennt
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 13.04.12 14:11
Moin!
Irgendwie ist das etwas verworren, was du da erzählst.
OliverN_26 hat folgendes geschrieben : | Wenn ich es aber z.B. mit Putty versuche gehts wunderbar. |
Na dann, das Paket mit dem F19 mit Wireshark aufschnappen und schon hast du den passenden Code.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
OliverN_26 
      
Beiträge: 252
Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
|
Verfasst: Fr 13.04.12 14:45
Ich bastel mich seid ner Weile durch dieses Thema, wobei ich mich aber immernoch als Neuling bezeichne. Ist es denn grundsätzlich, ohne weitere Einstellungen möglich jede beliebige F-Taste zu senden? Ich hab so viel gelesen in Bezug auf VT100 (F1-F4) / VT220 (F6-F20) ... und es scheint ein größeres Problem zu sein Funktionstasten (grade höher als F12 / F20) an ein AS400 System zu senden.
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 13.04.12 15:18
Moin!
OliverN_26 hat folgendes geschrieben : | Ist es denn grundsätzlich, ohne weitere Einstellungen möglich jede beliebige F-Taste zu senden? |
Das weiß ich nicht, aber wenn PuTTY es kann, warum du dann nicht auch?
OliverN_26 hat folgendes geschrieben : | Ich hab so viel gelesen in Bezug auf VT100 (F1-F4) / VT220 (F6-F20) ... und es scheint ein größeres Problem zu sein Funktionstasten (grade höher als F12 / F20) an ein AS400 System zu senden. |
Was spricht denn PuTTY mit der AS400? SSH? Oder sonstwas? Da gibt´s doch auch haufenweise Einstellungen zu der Verbindung, hilft das nicht weiter?
Ich hab mich mal ne ganze Weile mit SSH zu unseren Linux-Kisten rumgequält, jetzt läuft´s ganz brauchbar mit Cygwin.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
OliverN_26 
      
Beiträge: 252
Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
|
Verfasst: Mi 09.05.12 12:27
Hi
... am Rande der Verzweifelung ...
Musste mich leider um das ein oder andere Projekt kümmern und nun hab ich vor 3 Tagen dieses immernoch bestehende Problem wieder ausgekramt. Ich weiss einfach nicht wo und wie ich hier ansetzen soll. Ich wäre wirklich sehr sehr dankbar, wenn mir bei dem Problem bitte jemand unter die Arme greifen könnte.
Thema "mitlesen/auslesen" bringt mich irgendwie nicht weiter, da ich nicht weiss wo ich die entsprechenden Informationen finde und mit den ganzen Steuercodes etwas überfordert bin
Vielen Dank im voraus.
lg
Oli
|
|
jasocul
      
Beiträge: 6393
Erhaltene Danke: 147
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Mi 09.05.12 13:08
Meine Zeiten mit der AS/400 sind zwar schon fast 20 Jahre her, aber ich meine mich erinnern zu können, dass ab F13 einfach nur ein "Shift" dazu genommen werden muss.
Also:
F13 = Shift-F1
F14 = Shift-F2
...
Aber wie schon geschrieben, ist das bei mir schon sehr lange her.
|
|
OliverN_26 
      
Beiträge: 252
Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
|
Verfasst: Mi 09.05.12 13:57
Hi
Die Idee war gut. Daran hatte ich noch gar nicht gedacht. Entweder mach ich aber was falsch oder es geht nicht  Das KeyCode Table sieht letztendlich so aus:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30:
| . . . (ScanCode: #$3B; Shift: []; Ext: FALSE; Value: #$1B + '[11~'), (ScanCode: #$3C; Shift: []; Ext: FALSE; Value: #$1B + '[12~'), (ScanCode: #$3D; Shift: []; Ext: FALSE; Value: #$1B + '[13~'), (ScanCode: #$3E; Shift: []; Ext: FALSE; Value: #$1B + '[14~'), (ScanCode: #$3F; Shift: []; Ext: FALSE; Value: #$1B + '[15~'), (ScanCode: #$40; Shift: []; Ext: FALSE; Value: #$1B + '[17~'), (ScanCode: #$41; Shift: []; Ext: FALSE; Value: #$1B + '[18~'), (ScanCode: #$42; Shift: []; Ext: FALSE; Value: #$1B + '[19~'), (ScanCode: #$43; Shift: []; Ext: FALSE; Value: #$1B + '[20~'), (ScanCode: #$44; Shift: []; Ext: FALSE; Value: #$1B + '[21~'), (ScanCode: #$57; Shift: []; Ext: FALSE; Value: #$1B + '[23~'), (ScanCode: #$58; Shift: []; Ext: FALSE; Value: #$1B + '[24~'), (ScanCode: #$3B; Shift: [ssShift]; Ext: FALSE; Value: #$1B + '[11~'), (ScanCode: #$3C; Shift: [ssShift]; Ext: FALSE; Value: #$1B + '[12~'), (ScanCode: #$3D; Shift: [ssShift]; Ext: FALSE; Value: #$1B + '[13~'), (ScanCode: #$3E; Shift: [ssShift]; Ext: FALSE; Value: #$1B + '[14~'), (ScanCode: #$3F; Shift: [ssShift]; Ext: FALSE; Value: #$1B + '[15~'), (ScanCode: #$40; Shift: [ssShift]; Ext: FALSE; Value: #$1B + '[17~'), (ScanCode: #$41; Shift: [ssShift]; Ext: FALSE; Value: #$1B + '[18~'), (ScanCode: #$42; Shift: [ssShift]; Ext: FALSE; Value: #$1B + '[19~'), (ScanCode: #$43; Shift: [ssShift]; Ext: FALSE; Value: #$1B + '[20~'), (ScanCode: #$44; Shift: [ssShift]; Ext: FALSE; Value: #$1B + '[21~'), (ScanCode: #$57; Shift: [ssShift]; Ext: FALSE; Value: #$1B + '[23~'), (ScanCode: #$58; Shift: [ssShift]; Ext: FALSE; Value: #$1B + '[24~'), . . . |
War das so gemeint?
lg
Oli Moderiert von Narses: Beiträge zusammengefasstIch fand den Tip wirklich gut, bin da mal dran geblieben und hab es wirklich hinbekommen  Ich brauchte allerdings KeyCodes aus einem anderen Terminal Emulator (rxvt). Für die, die es interessiert:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
| (ScanCode: #$3B; Shift: []; Ext: FALSE; Value: #$1B + '[11~'), (ScanCode: #$3C; Shift: []; Ext: FALSE; Value: #$1B + '[12~'), (ScanCode: #$3D; Shift: []; Ext: FALSE; Value: #$1B + '[13~'), (ScanCode: #$3E; Shift: []; Ext: FALSE; Value: #$1B + '[14~'), (ScanCode: #$3F; Shift: []; Ext: FALSE; Value: #$1B + '[15~'), (ScanCode: #$40; Shift: []; Ext: FALSE; Value: #$1B + '[17~'), (ScanCode: #$41; Shift: []; Ext: FALSE; Value: #$1B + '[18~'), (ScanCode: #$42; Shift: []; Ext: FALSE; Value: #$1B + '[19~'), (ScanCode: #$43; Shift: []; Ext: FALSE; Value: #$1B + '[20~'), (ScanCode: #$44; Shift: []; Ext: FALSE; Value: #$1B + '[21~'), (ScanCode: #$57; Shift: []; Ext: FALSE; Value: #$1B + '[23~'), (ScanCode: #$58; Shift: []; Ext: FALSE; Value: #$1B + '[24~'),
(ScanCode: #$3B; Shift: [ssShift]; Ext: FALSE; Value: #$1B + '[25~'), (ScanCode: #$3C; Shift: [ssShift]; Ext: FALSE; Value: #$1B + '[26~'), (ScanCode: #$3D; Shift: [ssShift]; Ext: FALSE; Value: #$1B + '[28~'), (ScanCode: #$3E; Shift: [ssShift]; Ext: FALSE; Value: #$1B + '[29~'), (ScanCode: #$3F; Shift: [ssShift]; Ext: FALSE; Value: #$1B + '[31~'), (ScanCode: #$40; Shift: [ssShift]; Ext: FALSE; Value: #$1B + '[32~'), (ScanCode: #$41; Shift: [ssShift]; Ext: FALSE; Value: #$1B + '[33~'), (ScanCode: #$42; Shift: [ssShift]; Ext: FALSE; Value: #$1B + '[34~'), (ScanCode: #$43; Shift: [ssShift]; Ext: FALSE; Value: #$1B + '[23$'), (ScanCode: #$44; Shift: [ssShift]; Ext: FALSE; Value: #$1B + '[24$'), (ScanCode: #$57; Shift: [ssShift]; Ext: FALSE; Value: #$1B + '[11^'), (ScanCode: #$58; Shift: [ssShift]; Ext: FALSE; Value: #$1B + '[12^'), |
Vielen vielen Dank
lg
Oli
|
|
|