View Full Version : اجرای نرم افزار برای یکبار
yalameh
دوشنبه 06 آبان 1387, 15:10 عصر
سلام
دوستان کسی می دونه چطور می شه اجازه داد نرم افزار فقط یکبار اجرا گردد و برای دفعات بعدی پیغام داده شود .
s.mostafa.rahmani
دوشنبه 06 آبان 1387, 15:25 عصر
if findwindow('TForm1', 'Form1')<>0 then
begin
showmessage('already running');
application.terminate;
end;
beginner63
دوشنبه 06 آبان 1387, 15:55 عصر
با سلام. البته روش صحيح استفاده از mutexهست. جستجو كنيد
yalameh
دوشنبه 06 آبان 1387, 15:56 عصر
دوست عزیز این کد که نوشتی کجای نرم افزار باید ازش استفاده کنیم . من توی OnCreate فرم می گذارم همیشه پیغام Already running را می ده و از برنامه بیرون می آد .
s.mostafa.rahmani
دوشنبه 06 آبان 1387, 16:13 عصر
توي فايل اصلي برنامه.
از منوي Project گزينه View Source رو انتخاب كنيد.
s.mostafa.rahmani
دوشنبه 06 آبان 1387, 16:15 عصر
اين هم راه استفاده از mutex كه به قول دوستمون راه صحيحتري است:
program MyApp;
uses
Windows,Forms,
MyApp1 in 'MyApp1.pas' {Form1};
var
Mutex : THandle;
{$R *.RES}
begin
Mutex := CreateMutex(nil, True, 'MyAppName');
if (Mutex <> 0) and (GetLastError = 0) then
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
if Mutex <> 0 then
CloseHandle(Mutex);
end;
end.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.