vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 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

VB & Windows API
ToAscii funktioniert nicht immer 
Autor: icetea123
Datum: 17.05.08 18:31

Hallo zusammen,

in meiner Anwendung verwende ich einen LowLevel-Tastaturhook. Nur liefert dieser
mir aber nur VirtualKeyCodes. Dieses Problem bin ich umgangen, in dem ich die Funktion
ToAscii verwende. Allerdings scheint sie nur zu funktionieren, wenn meine Anwendung im
Vordergrund ist. Man muss sich das so vorstellen:

Ich habe ein Testformular mit einer ReadOnly-Textbox. Jedes "gehookte" Zeichen wird dort eingetragen

Drück man nun eine Taste, wird diese vom Hook abgefragt und in ein Ascii-Zeichen umgewandelt:
Bsp.: Ich drücke Shift + 1, dann wird über ToAscii daraus ein '!'

Ist mein Fenster aber im Hintergrund, funktioniert dies nicht mehr.

Die Funktion ToAscii benötigt unter anderem auch den Tastatur-Status, welchen ich mit "GetKeyboardState" ermittle.

Durch Debug-Ausgaben ist mir aufgefallen, dass diese Funktion falsche Werte liefert, wenn mein Fenster im Hintergrund ist.

Jetzt meine eigentliche Frage: Kann ich dieses Problem irgendwie umgehen?

Schonmal Danke im Vorraus,
icetea

-----------------------------------
Betriebssystem: Schrott (Vista)
Entwicklungsumgebung: VS 2008

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: ToAscii funktioniert nicht immer 
Autor: icetea123
Datum: 17.05.08 19:35

Hallo,

ich hab das Problem gelöst. GetKeyboardState liefert nur den Status für den aktuellen Thread zurück.
Ich ermittle jetzt die ThreadID des aktuellen Fensters und klinke mich mit AttachThreadInput in dessen KeyboardState ein.

-----------------------------------
Betriebssystem: Schrott (Vista)
Entwicklungsumgebung: VS 2008

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