ورود

View Full Version : یافتن نسخه قبلی برنامه در حال اجرا



farideh_en
شنبه 21 مرداد 1385, 09:51 صبح
سلام
اگر یک نسخه از برنامه در حال اجرا باشد چطور میشه اجازه نداد نسخه دیگر از همان برنامه
اجرا شود ؟

mzjahromi
شنبه 21 مرداد 1385, 09:58 صبح
آقا من برنامه ام در حال اجراست حالا نمی خواهم یه بار دیگه اجرا بشه (http://www.barnamenevis.org/forum/showthread.php?t=31933&highlight=mutex)
می خواهم اگر دو بار روی برنامه (exe)کلیک شد فقط یکبار اجرا گردد (http://www.barnamenevis.org/forum/showthread.php?t=25268&highlight=mutex)
چگونگی جلوگیری از اجرای مجدد برنامه در هنگام بازبودن آن (http://www.barnamenevis.org/forum/showthread.php?t=18762&highlight=mutex)
جلوگیری از اجرای همزمان یک برنامه (http://www.barnamenevis.org/forum/showthread.php?t=2151&highlight=mutex)

Accidentboy
دوشنبه 12 شهریور 1386, 14:33 عصر
این Project Unit

program Project;

uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit3 in 'Unit3.pas' {Form3},
windows,
Messages,
Dialogs,
Unit2 in 'Unit2.pas' {Form2};

var
hm:THandle ;

{$R *.res}


begin
hm:=createmutex(nil,false,'oneCopyMutex');
if WaitForSingleObject(hm,0)<>wait_timeout then
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm2, Form2);
Application.Run;
end
else
ShowMessage('برنامه شما در حال اجرا می باشد');

end.

البته از این کد می تونین تو Unit form هم استفاده کنید
var
hm:THandle ;

hm:=createmutex(nil,false,'oneCopyMutex');
if WaitForSingleObject(hm,0)<>wait_timeout then
//code

mzjahromi
دوشنبه 12 شهریور 1386, 16:45 عصر
به تاریخ تاپیک و جوابهای داده شده هم دقت کردید؟