AppActivate
他のウィンドウをアクティブに
AppActivateステートメントは指定されたウィンドウをアクティブにします。Delphiにそういった機能が見当たらないので
FindWindow APIと SetForegroundWindow APIで実現するのはどうでしょう?FindWindow
APIはアクティブにしたいウィンドウの完全なタイトル文字列、もしくはクラス名が必要になります。タイトル文字列が不定の場合はクラス名で指定することになります。クラス名は
Professional版以上に付属する「WinSight」で調べることが可能です。
(ここのサイトで公開中の拙作のフリーソフト HandleXでも可能です。)
| ■ FindWindow / SetForegroundWindow APIの使用例 |
procedure TForm1.Button1Click(Sender: TObject);
var
WinHnd : Integer;
begin
(* クラス名で検索 ここでは Excel *)
WinHnd := FindWindow('XLMAIN', nil);
if WinHnd > 0 then
begin
SetForegroundWindow(WinHnd);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
WinHnd : Integer;
begin
(* タイトル名で検索 ここでは Excel *)
WinHnd := FindWindow(nil, 'Microsoft Excel - Book1');
if WinHnd > 0 then
begin
SetForegroundWindow(WinHnd);
end;
end;
|