Delphiでデバッグ時の識別はできますか?
現在、2重起動防止のため下記のようなコードにしています。 Delphiではデバッグ実行時のフォームも2重起動の対象となるため、開発環境があるときは、2重起動のチェックをしないようにしてあります。
これでうまく行くのですが、何だか野暮ったい気がします。 こう少しスマートな解決策はないでしょうか?
program Sample;
uses
Forms,
Windows, Dialogs,
uFrmSample in 'uFrmSample.pas' {frmSample};
{$R *.res}
var
MainWnd: THandle;
begin
{Delphi開発環境の存在をチェックする}
MainWnd := FindWindow(nil, 'delphi 6');
if MainWnd = 0 then begin
{間発環境が実行中でなければ2重起動をチェックする}
MainWnd := FindWindow('TFrmSample', nil);
if MainWnd <> 0 then begin
ShowMessage('既に起動しています');
SetForegroundWindow(MainWnd);
Exit;
end;
end;
Application.Initialize;
Application.CreateForm(TfrmSample, frmSample);
Application.Run;
end.
以上、よろしくおねがいします。
お礼
ずばり、それです。 普段はDelphiを使っていないので分かりませんでした。