vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Suche Visual-Basic Code
Biete 100 EUR: Schnelle Mousedown-Events auf Touchscreen verzögern 
Autor: kniht
Datum: 08.01.19 12:18

Hallo zusammen,
ich suche ein kleines Tool, mit dem ich schnell hintereinanderfolgende Mausklicks unterbinden kann. Die Anwendung soll auf einem Touchscreen laufen, d.h. es geht hier nicht um eine Maus, sondern einen Finger/Touch. Der Touchscreen ist per USB an den PC (Windows 8) angeschlossen, ebenso die Maus. Ein entspr. Tool für die Maus funktioniert, aber -ich bin kein Programmierer- offensichtlich wird ein Touch-Event anders angesprochen als ein Mausevent.

Konkret soll damit verhindert werden, dass ein User mehrmals schnell hintereinander über den Touchscreen wischen kann; die erzwungene Pause zwischen 2 Swipes soll ca. 1 Sek. betragen.

Zum Testen stelle ich gern einen Teamviewer-Zugang zur Verfügung.

Freue mich auf PNs.

Viele Grüße
Peter
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Biete 100 EUR: Schnelle Mousedown-Events auf Touchscreen verzögern 
Autor: W. Wolf
Datum: 05.06.19 08:25

Hallo,

ohne eine Testumgebung wird fertig funktionierender Code schwierig werden. Aber wir können das Prinzip zumindest diskutieren. Du wirst dich in den Nachrichten-Strom von Windows einklinken müssen. Hier verkürzt (in einem Modul):


Private Declare Function SetWindowsHookEx& Lib "user32" Alias _
  "SetWindowsHookExA" (ByVal HID&, ByVal Fn&, ByVal hmod&, ByVal ThrId&)
Private Declare Function CallNextHookEx& Lib "user32" (ByVal hHook&, ByVal _
nCode&, ByVal wParam&, lParam As Any)
Private Declare Function UnhookWindowsHookEx& Lib "user32" (ByVal Hook&)
Private Declare Function WindowFromPoint& Lib "user32" (ByVal x&, ByVal y&)
 
'Überwachung starten
hCallNextHookEx& = SetWindowsHookEx(WH_GetMessage, AddressOf MsgProc, 0, _
  App.ThreadID)
Dann brauchst Du noch eine Prozedur MsgProc, wo die Nachrichten ankommen:
Private Function MsgProc(ByVal nCode&, ByVal wParam&, Inf As Msg) As Long
End Function
Hier kannst du auf deine Nachricht warten, prüfen ob diese Nachricht an dein Fenster geht und einen Zeitstempel setzen. Beim eintreffen der nächsten Nachricht kontrollierst du die Zeitdifferenz und lässt die Nachricht nur dann durch, wenn dein Limit erreicht ist:
MsgProc = CallNextHookEx(hCallNextHookEx&, nCode, wParam, Inf)
Um fertigen Code zu liefern, müsste man ein bisschen die Windows-Messages analysieren, die beim Wischen und Tippen eintrudeln. Am Programm-Ende nicht vergessen den Hook wieder aufzuheben, sonst kracht es. Achtung: es wird auch in der IDE mächtig Probleme beim Debuggen geben. Deshalb Programm möglichst nicht anhalten, sondern über Ausgaben in das Direktfenster debuggen.

Gruß
W. Wolf

PS: kauf deiner Frau/Freundin/Kindern was schönes für die 100 Mäuse!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel