「過去のTips集」→「Win32API」にある、
「アプリの二重起動を防止する」
を参考に二重起動防止のプログラムを作りました。
二重起動は、防止できるようになったのですが、
既存プロセスを最前面に送る、ことができません。
実際に、ソースを以下のようにしています。
program J_PFM_SR_IMPDIA_P;
uses
Windows,
Forms,
J_PFM_SR_IMPDIA_U in 'J_PFM_SR_IMPDIA_U.pas' {frmIMPDIA};
{$R *.res}
const
MutexName = 'TEST_MUTEX';
ClassName = 'TfrmIMPDIA';
WindowName = 'frmIMPDIA';
var
Mutex: THandle;
Handle: THandle;
begin
Mutex := OpenMutex(MUTEX_ALL_ACCESS, False, MutexName);
if Mutex <> 0 then
begin
Handle := FindWindow(ClassName, WindowName);
SetForegroundWindow(Handle);
Exit;
end;
CreateMutex(nil, False, MutexName);
Application.Initialize;
Application.CreateForm(TfrmIMPDIA, frmIMPDIA);
Application.Run;
end.
Halbow です。
ここが参考になるかもしれません。
http://halbow.cool.ne.jp/Notes/N011.html
Halbow さんありがとうございます。
大変参考になりました。
Halbow さんありがとうございます。
大変参考になりました。
ツイート | ![]() |