二重起動ぼうしについて〜??

解決


理恵  2004-01-07 00:02:11  No: 6539

「過去の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  URL  2004-01-07 00:47:27  No: 6540

Halbow です。

ここが参考になるかもしれません。

http://halbow.cool.ne.jp/Notes/N011.html


理恵  2004-01-08 01:04:31  No: 6541

Halbow さんありがとうございます。
大変参考になりました。


理恵  2004-01-08 01:05:18  No: 6542

Halbow さんありがとうございます。
大変参考になりました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加