function SendVK(
const TargetWindow: HWND = 0;
const VK_KeyCode: Word = 0;
const PressKey: Boolean = True): Boolean;
var
inputArray:
array[0..0]
of TInput;
begin
Result := False;
if (TargetWindow = 0)
then
Exit;
// Beginne Prüfung
if (GetForegroundWindow <> TargetWindow)
then
begin
// Ziel ist kein Fenster
if (
not IsWindow(TargetWindow))
then
Exit;
// Ziel ist minimiert
if IsIconic(TargetWindow)
then
ShowWindow(TargetWindow, SW_RESTORE);
// Ziel ist versteckt
if (
not IsWindowVisible(TargetWindow))
then
ShowWindow(TargetWindow, SW_SHOW);
// Ziel ist nicht im Vordergrund
if (GetForegroundWindow <> TargetWindow)
then
BringWindowToTop(TargetWindow);
// Finale prüfung
if (GetForegroundWindow <> TargetWindow)
then
Exit;
end;
// Fülle Puffer und sende ihn
FillChar(inputArray, Length(inputArray) * SizeOf(TInput), 0);
inputArray[0].Itype := INPUT_KEYBOARD;
inputArray[0].ki.wVk := VK_KeyCode;
if (
not PressKey)
then
inputArray[0].ki.dwFlags := KEYEVENTF_KEYUP;
Result := (SendInput(Length(inputArray), inputArray[0], SizeOf(TInput)) <> 0);
end;
procedure TForm19.FormCreate(Sender: TObject);
begin
// Self.BringToFront;
SendVK(
Handle, VK_LMENU);
SendVK(
Handle, VK_LMENU, False);
SendVK(
Handle, VK_ESCAPE);
SendVK(
Handle, VK_ESCAPE, False);
end;