掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
フォームの2重起動防止(?)について (ID:12409)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
フォームの表示とアプリケーションの起動をごっちゃにしているので質問の意味が 分かりづらいです。 > 巷でよく見掛けるプログラムだと2重起動が判明したら、 > 今回表示しようとしてるウィンドウを開かせない(閉じる)様にしてると思うんです そうですね。ウィンドウを開かせないっていうより、アプリを終了するのですが。 > でも実際したいのは新ウィンドウを開いて古ウィンドウを閉じる事なのです なるほど。おもしろいですね。プロジェクトファイルを以下のようにすると、 前に起動されていた同じアプリを必ず終了してから、自分を起動します。 program Project1; uses Forms, Windows, Messages, Unit1 in 'Unit1.pas' {Form1}; {$R *.res} function EnumWndProc(hWindow:HWND;lData:LPARAM):BOOL;stdcall; begin result := true; if GetProp(hWindow,'HogeHogeHoge') = 98765 then begin SendMessage(hWindow,WM_SYSCOMMAND,SC_CLOSE,0); result := false; end; end; begin EnumWindows(@EnumWndProc,0); SetProp(Application.Handle,'HogeHogeHoge',98765); Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; RemoveProp(Application.Handle,'HogeHogeHoge'); end.
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.