Tuesday, 15 June 2010

c# - Held down shift key only detected in first instance -



c# - Held down shift key only detected in first instance -

my application able observe if shift key pressed first modified key. sec modified key(even when shift held down) detected unmodified while key still held.

i want able observe if key modified shift after first modified key(e.g. second, 3rd , on..)

code registering follows :

[dllimport("user32.dll")] public static extern bool registerhotkey(intptr hwnd, int id, int fsmodifiers, int vlc); [dllimport("user32.dll")] public static extern bool unregisterhotkey(intptr hwnd, int id); public form1() { initializecomponent(); registerhotkey(this.handle, 1, 0, (int)keys.a); registerhotkey(this.handle, 101, 4, (int)keys.a); }

event handler(when keys pressed) :

protected override void wndproc(ref message m) { if (m.msg == 0x0312) { switch (m.wparam.toint32()) { case 1: //add textbox keypresstext.appendtext("a"); //unregister app doesnt rerecord resulting in loop unregisterhotkey(this.handle, 1); //send key after intercepting sendkeys.sendwait("a"); //reregister registerhotkey(this.handle, 1, 0,(int)keys.a); break; case 101: keypresstext.appendtext("a"); unregisterhotkey(this.handle, 101); sendkeys.send("+{a}"); registerhotkey(this.handle, 101, 4, (int)keys.a); break; } } base.wndproc(ref m); }

c# .net winapi keyboard registerhotkey

No comments:

Post a Comment