delphi4arab منتديات دلفي للعرب
تشغيل البرنامج مرة واحدة في نفس الوقت على نفس الجهاز - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : تشغيل البرنامج مرة واحدة في نفس الوقت على نفس الجهاز (/showthread.php?tid=11177)



تشغيل البرنامج مرة واحدة في نفس الوقت على نفس الجهاز - dahmane26 - 18-12-2020

السلام عليكم
اخوتي كيف يمكنني تشغيل برنامج بالدلفي مرة واحدة في نفس الوقت على نفس الجهاز
وجدت طريقة 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. 



RE: تشغيل البرنامج مرة واحدة في نفس الوقت على نفس الجهاز - larbiparadox - 18-12-2020

وعليك السلام

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

كود :
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;



RE: تشغيل البرنامج مرة واحدة في نفس الوقت على نفس الجهاز - dahmane26 - 21-12-2020

(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;


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