Tasten Wiederholung unterdrücken.

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
tft
Beiträge: 605
Registriert: 08.09.2004 20:18
Computerausstattung: GTX Titan , i9 9900K , 32 GB Ram , 500 GB SSD , 3 ASUS FullHD Monitore and more
Wohnort: Dachsen
Kontaktdaten:

Tasten Wiederholung unterdrücken.

Beitrag von tft »

Hallo,

gibt es eine Möglichkeit die Automatische Tastenwiederholung abzuschalten?

Gruss TFT
TFT seid 1989 , Turgut Frank Temucin , Dachsen/Berlin/Antalya
Aktuelles Projekte : Driving School Evergarden
YouTube : Pure Basic to go
FaceBook : Temuçin SourceMAgic Games
DISCORD : SourceMagic
W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak :-)
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Tasten Wiederholung unterdrücken.

Beitrag von RSBasic »

Was meinst du damit genau? Meinst du die fortlaufende Einfügung von Buchstaben bei gedrückter Taste?
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
tft
Beiträge: 605
Registriert: 08.09.2004 20:18
Computerausstattung: GTX Titan , i9 9900K , 32 GB Ram , 500 GB SSD , 3 ASUS FullHD Monitore and more
Wohnort: Dachsen
Kontaktdaten:

Re: Tasten Wiederholung unterdrücken.

Beitrag von tft »

Hallo,

ja ... ich simuliere ja mit einer Externen ARDUINO Hardware eine Tastatur. Aber ich möchte nicht das bei gedrückter taste
der entsprechende Buchstabe ständig wiederholt wird. Ich möchte dafür eigentlich nicht die Systemeinstellung ändern. Aber wen es nicht anders geht.

Gruss TFT
TFT seid 1989 , Turgut Frank Temucin , Dachsen/Berlin/Antalya
Aktuelles Projekte : Driving School Evergarden
YouTube : Pure Basic to go
FaceBook : Temuçin SourceMAgic Games
DISCORD : SourceMagic
W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak :-)
Benutzeravatar
Sylvia
verheiratet<br>1. PureGolf-Gewinner
Beiträge: 487
Registriert: 29.08.2004 09:42
Wohnort: Old Europe

Re: Tasten Wiederholung unterdrücken.

Beitrag von Sylvia »

Und warum verhinderst du das nicht einfach in deinem Programm im Arduino?
Basic Pur = PureBasic
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Tasten Wiederholung unterdrücken.

Beitrag von ccode_new »

@tft:

Wie simulierst du denn den Tastendruck ?
(Beispiel)

Dann müsstest du dir eine Verriegelung programmieren (z.B. über Hilfs-flag verriegeln)
Unter Arduino verwendest du doch bei Taster eine Software-Entprellung, oder ?
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benutzeravatar
tft
Beiträge: 605
Registriert: 08.09.2004 20:18
Computerausstattung: GTX Titan , i9 9900K , 32 GB Ram , 500 GB SSD , 3 ASUS FullHD Monitore and more
Wohnort: Dachsen
Kontaktdaten:

Re: Tasten Wiederholung unterdrücken.

Beitrag von tft »

@Sylvia

weil der Arduino nicht sehen kann was auf dem Desktop Passiert.

@ccode_new

Die Simulation ist etwas umständlich. Aber aufgrund der Gegebenheiten nicht anders machbar. Dazu müsste ich etwas weiter
ausholen.

Ich habe mich bei meinem Sohn verplappert und behauptet das ich eine SUKI programmieren kann wenn ich will. Jetzt habe
ich den Salat. Also Schreibe ich eine SpielerUnterstützungsKI die mir bei meinem Lieblings MMO BlackDesertOnline bei den Grinding
Sachen unter die Arme greift. Das Hauptproblem ist gewesen, das ich weder am Client noch am Datenstrom änderungen vornehmen
will. So das SUKI rein auf die Optische Erfassung angewiesen ist. Und zum Steuern des Chars in BDO müssen die Kommandos über das HID Interface,
also eine Tasttatur erfolgen.
Dazu habe ich eine Programm geschrieben "GUIreflect" . Diese sendet die Tastatur Kommandos an den Arduino Uno, dieser peer I2C Verbindung an den Arduino LEONARDO. Der Verteilt die Kommandos an die Tasttatur und an eine BlurTooth Schnittstelle als Monitoring.

Ich kann also vom GUIreflect ein Kommando geben, oder vom Handy , woraufhin eine Taste Virtuell gedrückt wird. über das HID Interface wirkt das wie
ein echter Tastendruck. Was natürlich das gleiche auslöst wie ein echter. Bei DX Fenstern bedeutet aber eine Gedrückte Taste etwas anderes. Dort muss man expliziet die Taste loslassen damit die damit Verbundene Bewegung abgebrochen wird. Bei Windows Fenster wird ein Repeat dabei erzeugt.
Hüpft jetzt der Fokus in in anderes Fenster, wird diese bis zum Abruch mit den Tasten Werten zugemüllt. In einem EditorFenster, dem vom Arduino zum
Beispiel kann das Fatale folgen haben, besonders wenn der Puffer noch etwas nachläuft.

Um einen Abbruch zu erzeugen habe ich einen Hook zum ermitteln des Fenster, das den Fokus hat eingebracht. Nun wird wenigsten alle
Virtuellen Tasten zurückgesetzt sobald das Fenster verlassen wird. Aber dieser Weg blockiert mir den Rechner. Denn sobald der Fokus
woanders liegt funktioniert die Versteuerung nicht mehr.

So genug geschrieben ... Gruss TFT
TFT seid 1989 , Turgut Frank Temucin , Dachsen/Berlin/Antalya
Aktuelles Projekte : Driving School Evergarden
YouTube : Pure Basic to go
FaceBook : Temuçin SourceMAgic Games
DISCORD : SourceMagic
W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak :-)
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Tasten Wiederholung unterdrücken.

Beitrag von ccode_new »

Grüezi tft,

ich glaube ich verstehe dein Problem und habe das mal versucht nachzuvollziehen.
Dabei ist mir bisher keine DirectX-Anwendung aufgefallen bei der GetAsyncKeyState_(...) nicht korrekt funktioniert.
Mir ist aber aufgefallen das eine reine Verwendung von GetAsyncKeyState_(...) eine falsche Verwendung ist.
Die Funktion schreibt in den Eingabepuffer (-32768 bei gehaltener Taste und danach sofort 1 = Taste losgelassen).
Für eine korrekte Abfrage auf einer Taste muss aber z.b. GetAsyncKeyState_(...) & $0001 geschrieben werden.
Ohne diesen Zusatz wird im normalen Zustand hier (z.B. If GetAsyncKeyState_(#VK_UP) <> 0) eigentlich nie 1 zurückgegeben.
(sondern nur -32768)

...Und schon mal GetKeyState() verwendet ?
Anbei: GetAsyncKeyState ist in einem Messagehandler z.B falsch aufgehoben.
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Antworten