delphi4arab منتديات دلفي للعرب

نسخة كاملة : تشغيل البرنامج مرة واحدة في نفس الوقت على نفس الجهاز
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم
اخوتي كيف يمكنني تشغيل برنامج بالدلفي مرة واحدة في نفس الوقت على نفس الجهاز
وجدت طريقة Mutex
عند البحث وهي بارفق كود بالفورم الاول للبرنامج عند خاصية الانشاء لكن لم ينجح معي فهل من حل
و الكود هو كالتالي
PHP كود :
program Project1;
uses
Forms
,
Unit1 in 'Unit1.pas' {Form1};
{
$R *.res}
var
hMutex: THandle;
begin
HMutex 
:= CreateMutex (nil, False, 'OneCopyMutex');
if 
WaitForSingleObject (hMutex, 0) <> wait_TimeOut the
begin
Application
.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
END
ELSE
ShowMessage('لا يمكن تشغيل أكثر من نسخة من البرنامج');
end. 
وعليك السلام

يمكنك وضعه في الفورم الرئيسية عند الانشاء

كود :
procedure TForm1.FormCreate(Sender: TObject); var hMutex: THandle; begin HMutex := CreateMutex (nil, False, 'OneCopyMutex'); if WaitForSingleObject (hMutex, 0) = wait_TimeOut then begin ShowMessage('لا يمكن تشغيل أكثر من نسخة من البرنامج'); Application.Terminate; end; end;
(18-12-2020, 11:08 PM)larbiparadox كتب : [ -> ]وعليك السلام

يمكنك وضعه في الفورم الرئيسية عند الانشاء

كود :
procedure TForm1.FormCreate(Sender: TObject); var hMutex: THandle; begin HMutex := CreateMutex (nil, False, 'OneCopyMutex'); if WaitForSingleObject (hMutex, 0) = wait_TimeOut then begin ShowMessage('لا يمكن تشغيل أكثر من نسخة من البرنامج'); Application.Terminate; end; end;


شكرا لقد نجح الامر