Witam
Chciałbym uśpić klawisz lub anulować jego KeyDown. O co chodzi: Robię programik, który zamiast klikniętego klawisza, klika inny. Korzystam z UserActivityHook z biblioteki user32.dll, a wygląda to tak:
private void Form1_Load(object sender, EventArgs e)
{
UserActivityHook actHook = new UserActivityHook();
actHook.KeyDown += new KeyEventHandler(actHook_KeyDown);
}
i handler:
void actHook_KeyDown(object sender, KeyEventArgs e)
{
string klawisz;
klawisz = Convert.ToString(e.KeyData);
if (klawisz == "Pause")
keybd_event(0x0D, 0x45, 0x1, UIntPtr.Zero);
}
W tym przypadku po naciśnięciu klawisza "Pause", robi się Enter.
Wszystko działa pięknię, ale gdy np. zamiast klawisza "Pause" chcę przechwycić np. klawisz "L" i zastąpić go "P", to klawisz "P" zostanie faktycznie wciśnięty, ale niestety klawisz "L" również. W efekcie czego w wordzie po naciśnięciu klawisza "L" dostajemy wpis "PL".
Dlatego muszę po "keybd_event(0x0D, 0x45, 0x1, UIntPtr.Zero);" napisać jakieś polecenie powstrzymujące wciśnięcie klawisza "L".
Proszę o pomoc.
Rychu