vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2018
 
zurück

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

Fortgeschrittene Programmierung
Tastenkombination systemweit abfragen 
Autor: Spitzbube66
Datum: 14.02.18 12:22

Liebe Gemeinde, folgendes Problem:

ich möchte mit einer frei einstellbaren Tastenkombination, welche systemweit abgefangen werden soll, in meiner Anwendung etwas auslösen. Ich nutze dazu die hier von VBMichi 2006 dargestellte Funktion, etwas abgewandelt: (http://www.vbarchiv.net/forum/read.php?id=2&t=116602&i=116602&v=f)


Option Explicit
 
Private Declare Function GetAsyncKeyState Lib "user32" _
        (ByVal vKey As Long) As Integer
 
Private Sub Form_Load()
   Timer1.Interval = 10
End Sub
 
Private Sub Timer1_Timer()
    Dim X As Long
 
    For X = 48 To 90
        If CompKey(X, UCase(Chr$(X))) Then Exit Sub
        If CompKey(X + 48, UCase("NUM " & Chr$(X))) Then Exit Sub
    Next X
 
    If CompKey(8, " {Backspace} ") Then Exit Sub
    If CompKey(9, "    ") Then Exit Sub
    If CompKey(13, vbCrLf) Then Exit Sub
    If CompKey(32, " ") Then Exit Sub
    If CompKey(186, "Ü") Then Exit Sub
    If CompKey(192, "Ö") Then Exit Sub
    If CompKey(219, "?") Then Exit Sub
    If CompKey(220, "^") Then Exit Sub
    If CompKey(211, "`") Then Exit Sub
    If CompKey(222, "Ä") Then Exit Sub
 
    For X = 112 To 127
        If CompKey(X, "F" & CStr(X - 111)) Then Exit Sub
    Next X
 
End Sub
 
Private Function CompKey(KCode As Long, KText As String) As Boolean
    Dim Result As Integer
 
    Result = GetAsyncKeyState(KCode)
    If Result = -32767 Then
            Text1.Text = Text1.Text & KText
            Text1.SelStart = Len(Text1.Text)
            CompKey = True
    Else
        CompKey = False
    End If
End Function
Die Abfrage zum Beispiel mit "If CompKey(123) Then" (123 = F12; ich weiß es gibt auch vbKeyF12) funktioniert, auch auf zum Beispiel "If CompKey(vbKeyControl) And CompKey(vbKeyShift) And CompKey(164)" (164 = ALT), also Strg+Shift+Alt, reagiert das Programm, aber nicht auf z.B. Strg + F12, also "If CompKey(vbKeyControl) And CompKey(123)".

Ich komme hier gerade nicht weiter und hoffe auf einen guten Tipp von Euch.

Gruß Frank

Beitrag wurde zuletzt am 14.02.18 um 12:45:21 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Tastenkombination systemweit abfragen368Spitzbube6614.02.18 12:22
Re: Tastenkombination systemweit abfragen168Franki19.02.18 02:28
Re: Tastenkombination systemweit abfragen158Spitzbube6619.02.18 09:38
Re: Tastenkombination systemweit abfragen145markusxy20.02.18 19:28
Re: Tastenkombination systemweit abfragen128Spitzbube6621.02.18 17:01

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-2018 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