چگونه تشخيص دهيم که یک برنامه در حال اجراست؟
در ابتدا در قسمت معرفي يونيت ها يونيت Windows را اضافه كنيد :
Uses Windows;
حال در قسمت تعريف متغير ها , متغيري از نوع THandle تعريف كنيد :
Var Mutex : THandle;
Mutex يك مقدار 32 بيتي براي تشخيص يكتا بودن يك منبع مي باشد.
حال به بلاك اصلي برنامه مي رسيم كه مي بايست كد آن را به صورت زير تغيير دهيد :
begin
Mutex:=CreateMutex(nil,False,'OneCopyMutex');
if WaitForSingleObject(Mutex,0) <> wait_TimeOut then
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end;
end.
تابع CreateMutex متغيري كه از نوع THandle تعريف كرده ايد را با مقدار
اوليه OneCopyMutex مقدار دهي مي كند . توجه داشته باشيد كه در واقع منظور
از اين مقدار دهي اوليه قرار دادن رشته OneCopyMutex در متغير نيست بلكه
متغير براي تشخيص وجود يك كپي از يك منبع مقدار دهي اوليه مي شود.
+ نوشته شده در سه شنبه دهم آذر ۱۳۸۸ ساعت 13:10 توسط محسن موسوی
|