WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Home Cockpit - Das Forum für die "Bastler" (http://www.wcm.at/forum/forumdisplay.php?f=55)
-   -   Keysend bei FS-BUS (http://www.wcm.at/forum/showthread.php?t=135233)

dirkan 18.06.2004 16:58

Hallo,

bitte berücksichtigt das Verhalten vom Windows.
Die vom FSBUS generierten Keyboard Events werden an das aktive Fenster geschickt. Solange ich im FSBUS bin, ist das aktive Fenster der FSBUS und empfängt das von Euch mühsame erstellte Event, es passiert .. meist garnix.

Das aktive Fenster soll ja der Flusi, oder eine anderes AddOn sein, das muss erst einmal aktiviert werden.

Aktivieren tut man das entweder mit der eigenen Maus, oder Alt+Tab oder, indem man die Aktivierungssequenz sicherheitshalber mit in den String eingibt.

Beispiel: Oben links ist ein Fenster mit einem EFIS Bildschirm. Dahin soll ein X gesendet werden.

Anstatt "K+X;K-X" kann man auch ein "L+379,162;L-379,162;K+X;K-X"
Damit tappert die Maus vorher mit dem (L)inken Mausbutton auf die Position 379,162 (Das Fenster mit dem EFIS) und dann wird das Keyboard Event X geschickt.

Noch besser:
"L+379,162;D30;L-379,162;D30;K+X;D30;K-X"

Die (D)elays geben der Zielanwendung, dem EFIS, Zeit um auf die beim Aktivieren notwendigen Aktionen angemessen zu reagieren.

Man kann die Zeiten nicht genau vorhersagen. Wer mehr zu dem Verhalten von Windows wissen möchte, sollte sich die die ersten Kapitel vom guten alten Charles Petzold Titel "Windows Programming" reinziehen (Warnung: das geht ins Eingemachte).

Ich hoffe, das diese Hinweise hilfreich sind.

Gruss Dirk

Totti 18.06.2004 18:01

Soweit klr, aber wieso funtioniert es mit der CID 0 nicht?

dirkan 18.06.2004 18:12

Hi,

ich hab's gerade nochmal erfolgreich probiert.
Oben links den Windows Editor positioniert, unten rechts den Router
Ein System-Objekt angelegt mit "L+120,120;L-120,120;K+E;K-E"

Dann einen Switch erzeugt, der ein Event auslöst und schon steht im Editor ein schönes E pro Tstendruck.

:lol:

Markus Wolfgang 19.06.2004 17:12

Hi,

Dirk, habe das mal so getestet. Leider bekomme ich auch gem Deiner Anleitung ein E in meinen Editor. Habe auch versucht die Koordinaten mit FSFINDER "genau" zu bestimmen.

Im Router wechselt zwar die 0 zur 1 aber ein Keysend erfolgt in keinsterweise. Weder mit CID 1 oder 0 oder sonst nochwas.

GEHT NICHT. HILFE

Gruss

Wolle

Totti 19.06.2004 17:56

Also um einen Key auf dem Server auszuführen, muß unter Switch die "0" stehen. CID 1,2 usw. sind die Clienten.
Bei der derzeitigen FsBus-Version muß jedoch die Konfigurationsdatei "von Hand" editiert werden. D. h., die "0" muß von Hand geändert werden. Der FsBus macht das noch nicht selbständig.
Wenn hier keine "0" steht, wird auch kein Event ausgeführt, weil FsBus versucht, das Event auf einem Clienten auszuführen.

Man muß also die Datei fsbus.fb2 (oder wie sie bei Euch heißt) mit dem Editor öffnen und dann an der richtigen Stelle die "0" einfügen.
Wo das ist? Nun legt doch einfach mal einen Switch mit dem Namen TEST an. Bei VID tragt Ihr einfach mal 30 ein und speichert.
Im Editor öffnen, nach Test suchen und dort hinter, wo 30 steht, mal die 0 eintragen.
Abspeichern, schließen und FsBus starten. Dann geht es!
So, und nun mal sehen, ob wir die Letten putzen.

Gruß
Thorsten

npbosch 20.06.2004 00:50

"L+120,120;L-120,120;K+E;K-E"

Das ist mir gelungen.

Nun versuche ich wieder ein keyevent zu einen Client ins Netz zu schicken.
Das ist mir aber noch nie gelungen.

Mus der Name des client PC's auch eingetragen werden in diesem string?
zB:
client1;L+120,120;L-120,120;K+E;K-E

(Ich habe die fsclient sw auf dem client. Im router CID is 2, und auf diesem client im fsclient CID = 2)
Aber was ich auch versuch , nix.

grus


Norbert

npbosch 20.06.2004 16:24

Habe schon einige vortschritte gemacht aber noch immer nicht was ich möchte.

Wie gesagt Keyevent nach dem server gelingt jetzt (mit programmieren mouseclick um das fenster das focus zu geben).

(Wenn man CID nach 1 ändert und dann wieder nach 0 functioniert es nicht mehr, dann muss man die .fsb Datei laden oder manual ändern wie hier oben beschrieben, dann functioniert es wieder)

------
Nun keyevent zum Client.

neuen keyevent gemacht
CID=2
On sequence: WN;K+E;K-E

In Fsclient.ini:

[FSClient]
CID=2

[Notepad]
TopWindowChar="n"
Executable="c:\windows\notepad.exe"
WorkingDirectory="c:\"
Activate=1
Terminate=1
FSBUS_Background=1

Habe im Client FSclient und Notepad offen, aber es passiert nichts.
Habe auch FS2004(FSUIPC/wideserver) und wideclient im client activiert (weis nicht ab das benötigt ist, aber das macht auch keinen unterschied, in beide Fälle nichts).

Wenn einer die Lösung hat?

gruss

Norbert


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag