サンプルをダウンロードしたけど,Windows API 使いまくりで,
何がなんだか分からない,
いや,精通していないので,という方のために,簡単なサンプルです.
てもやっぱり Windows API 使っています.
以下の Windows API の関数を使用しています.
ほとんど Windows API だけのコードだな.ハハハッ.
難解だな,こりゃ.
この場合「簡単」と言うのは,コードを簡単にコピーしてテストしやすい
という意味にとってください.
ShellExecute
FindWindow
SetForegroundWindow
SetWindowPos
フォームに TButton を 2 つ配置して,以下のコードとします.
uses
ShellAPI;
{$R *.dfm}
//=============================================================================
// フォーム生成時の処理
//=============================================================================
procedure TForm1.FormCreate(Sender: TObject);
begin
Self.FormStyle := fsStayOnTop;
end;
//=============================================================================
// メモ帳を起動
// usesにShellAPIが必要
//=============================================================================
procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute(Handle, '', 'Notepad.exe', nil, nil, SW_SHOW);
end;
//=============================================================================
// メモ帳を最前面に表示
//=============================================================================
procedure TForm1.Button2Click(Sender: TObject);
var
LHandle : HWND;
LFlags : Cardinal;
begin
LHandle := FindWindow('Notepad', nil);
if LHandle > 0 then begin
LFlags := SWP_NOSIZE or SWP_NOMOVE or SWP_SHOWWINDOW;
SetForegroundWindow(LHandle);
SetWindowPos(LHandle, HWND_TOPMOST, 0, 0, 0, 0, LFlags);
end;
end;
|