Symulowanie naciśnięcia klawisza

Symulowanie naciśnięcia klawisza choć, rzadko stosowane to może się czasem przydać. Wykonanie tego jest bardzo łatwe: wystarczy wysłać za pomocą funkcji Windows API SendMessage() odpowiedni komunikat, jako pierwszy parametr podajemy uchwyt okna, do którego wysyłamy komunikat o naciśnięciu klawisza, a jako trzeci parametr podajemy jaki to klawisz.

Działanie tego mechanizmu można bardzo łatwo sprawdzić. Umieszczamy na formularzu przycisk i w jego zdarzeniu OnClick umieszczamy:

Unit1.cpp

void __fastcall TForm1::Button1Click(TObject *Sender)
{
   SendMessage(Handle, WM_KEYDOWN, 's', 0);
}


A następnie tworzymy zdarzenie OnKeyDown dla formularza i piszemy:

Unit1.cpp

void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
                                    TShiftState Shift)
{
   ShowMessage("Wciśnięto klawisz");
}

Sprawdźcie jaki to da efekt, choć można się tego bardzo łatwo domyślić.