View Full Version : اجرای نرم افزار برای یکبار
  
yalameh
دوشنبه 06 آبان 1387, 16:10 عصر
سلام 
دوستان کسی می دونه چطور می شه اجازه داد نرم افزار فقط یکبار اجرا گردد و برای دفعات بعدی پیغام داده شود .
s.mostafa.rahmani
دوشنبه 06 آبان 1387, 16:25 عصر
if findwindow('TForm1', 'Form1')<>0 then
begin
showmessage('already running');
application.terminate;
end;
beginner63
دوشنبه 06 آبان 1387, 16:55 عصر
با سلام. البته روش صحيح استفاده از mutexهست. جستجو كنيد
yalameh
دوشنبه 06 آبان 1387, 16:56 عصر
دوست عزیز این کد که نوشتی کجای نرم افزار باید ازش استفاده کنیم . من توی OnCreate فرم می گذارم همیشه پیغام Already running را می ده و از برنامه بیرون می آد .
s.mostafa.rahmani
دوشنبه 06 آبان 1387, 17:13 عصر
توي فايل اصلي برنامه.
از منوي Project گزينه View Source رو انتخاب كنيد.
s.mostafa.rahmani
دوشنبه 06 آبان 1387, 17: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.