من کد برای دلفی می خوام:
کدی که نشون بده که برنامه من قبلا اجرا شده یا نه و اگه اجرا شده بود و در حال اجرا بود برنامه من دیگه اجرا نشه.
با اجازه از دوست عزیزمون Joker، ولی فکر کنم این یکی راحت تر باشه.
Function IsRunningApp:Boolean;
var
Hwnd:Thandle;
begin
hwnd:=CreateMutex(nil,False,'OneCopyMutex');
Result:=false;
If not(WaitForSingleObject(Hwnd,0)<>Wait_TimeOut) then
Result:=true;
end;
طریقه استفاده از این کد :
می تونی این کد رو توی یونیت فرم اصلی قرار بدی و بعد مثلا در رویداد OnActivate یا OnShow مربوط به فرم اصلی چک کنی که برنامه داره اجرا می شه یا نه، اگه داره اجرا می شه یک پیغام نشون بدی و فرم اصلی برنامه رو ببندی، مثلا :
if IsRunningApp = True then
MessageBox(Handle, 'Program is Running', '', MB_OK+MB_ICONEXCLAMATION);
Form1.Close;