Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1563 | Anzahl registrierter User: 1896 | Besucher online: 301
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

Tasten mittels ScanCodes umbelegen


Autor: Tim Hartwig
Sprache: VB.NET
Bewertung:
noch nicht bewertet
Anzahl der Aufrufe: 4674
  
Kick it on dotnet-kicks.de  

Beschreibung:

Diese Funktion kann die ScanCodes also die Tastaturbefehle umsetzen um z.B. Tasten zu vertauschen oder zu deaktivieren.
Nach der Umbelegung muss der Computer neugestartet werden damit die ScanCodes angewendet werden.

Weitere Informationen gibt es hier: http://winfaq.de/faq_html/Content/tip1575.htm
Eine Liste der ScanCodes findet man hier: http://winfaq.de/faq_html/Content/tip1576.htm

Achtung: Man sollte diese Funktion nur dann benutzen wenn man sich mit der Materie auskennt da es sonst zu Problemen kommen kann.

Hier ein Beispielaufruf wenn man die Taste "ESCAPE" mit der Taste "A" vertauschen will:
'SetScanCodes(New Byte() {&H1, &H0, &H1E, &H0}, New Byte() {&H1E, &H0, &H1, &H0})


Abgelegt unter: ScanCode, Tasten, Tastatur.



Visual Basic
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
''' <summary>
''' Diese Funktion kann die ScanCodes also die Tastaturbefehle umsetzen um z.B. Tasten zu vertauschen oder zu deaktivieren.
''' Nach der Umbelegung muss der Computer neugestartet werden damit die ScanCodes angewendet werden.
''' </summary>
''' <param name="ScanCodes">
''' Hier kann man ein oder mehrere ByteArrays angeben wobei das Array immer eine länge von 4 haben muss.
''' Die ersten 2 Einträge im Array stellt den Tastencode dar welcher mit dem alten Code ersetzt werden soll
''' und die letzten beiden Einträge im Array stellen den Tastencode dar der ersetzt werden soll.
''' Die Taste ESCAPE hat den Tastencode 0x01,0x00 und die Taste A hat den Tastencode 0x1E,0x00.
''' Wenn man nun die Taste ESCAPE und A vertausche will muss man als Parameter folgendes angeben:
''' SetScanCodes(New Byte() {0x01, 0x00, 0x1E, 0x00}, New Byte() {0x1E, 0x00, 0x01, 0x00})
''' Statt 0x muss man natürlich die Hex Formatierung von VB verwenden (hier in XML nicht darstellbar).
''' Das erste ByteArray setzt auf die ESC-Taste die A-Taste und das zweite ByteArray setzt auf die A-Taste die ESC-Taste
''' </param>
''' <remarks>
''' Weitere Informationen gibt es hier: http://winfaq.de/faq_html/Content/tip1575.htm
''' Eine Liste der ScanCodes findet man hier: http://winfaq.de/faq_html/Content/tip1576.htm
''' </remarks>
Public Sub SetScanCodes(ByVal ParamArray ScanCodes() As Object)
    'Hier noch mal das Beispiel um ESC mit A zu vertauschen:
    'SetScanCodes(New Byte() {&H1, &H0, &H1E, &H0}, New Byte() {&H1E, &H0, &H1, &H0})

    Dim CodeArray As New List(Of Byte)
    Dim CodeCount As Byte = ScanCodes.Length + 1
    CodeArray.AddRange(New Byte() {&H0, &H0, &H0, &H0}) 'Header
    CodeArray.AddRange(New Byte() {&H0, &H0, &H0, &H0}) 'Header
    CodeArray.AddRange(New Byte() {Hex(CodeCount), &H0, &H0, &H0}) 'Anzahl

    For i As Integer = 0 To ScanCodes.Length - 1
        CodeArray.AddRange(ScanCodes(i))
    Next

    CodeArray.AddRange(New Byte() {&H0, &H0, &H0, &H0}) 'Abschluss

    Microsoft.Win32.Registry.SetValue("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout", _
    "Scancode Map", CodeArray.ToArray, Microsoft.Win32.RegistryValueKind.Binary)
End Sub
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)



Diese Snippets könnten für Sie interessant sein:

schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.