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

解決


轟警部  2004-08-25 00:54:31  No: 10569  IP: [192.*.*.*]

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

編集    削除
jok  2004-08-25 01:16:34  No: 10570  IP: [192.*.*.*]

こんな感じ

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  IP: [192.*.*.*]

訂正

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

編集    削除
轟警部  2004-08-25 02:55:51  No: 10572  IP: [192.*.*.*]

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

編集    削除