exe起動時に押下キーの判定をするには?

解決


轟警部  2004-08-25 00:54:31  No: 10569

設定次第ではフォームを必要としないexeを作っています。
その設定値はiniファイルに保存しておくようにし、
初回起動時は普通にフォームを表示します。
フォームで設定を行い、その設定次第では次回起動時からは
フォームを表示させないようにします。
この状態のとき、例えばAltを押しながらexeを実行した場合、フォームを表示させる。というような事をしたいのですが、起動時に押下されているキーを取得する方法がわかりません。
ご存じの方、ご教授お願いします。


jok  2004-08-25 01:16:34  No: 10570

こんな感じ

program Project1;

uses
  Forms, Windows, Dialogs,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.RES}

function IsVirtualKeyPressed(VKey:WORD):Boolean;
begin
  result := (GetAsyncKeyState(VK_F11) and $8000)<>0;
end;

begin
  if IsVirtualKeyPressed(VK_F11) then ShowMessage('Pressed');
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.


jokte  2004-08-25 01:24:31  No: 10571

訂正

function IsVirtualKeyPressed(VKey:WORD):Boolean;
begin
  result := (GetAsyncKeyState(VKey) and $8000)<>0;
end;


轟警部  2004-08-25 02:55:51  No: 10572

jokteさんありがとうございました。
GetAsyncKeyState、こいつなわけですね。
サンプルまで載せていただき感謝です。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加