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

حال با استفاده از شرط if WaitForSingleObject(Mutex,0)<>wait_TimeOut then تشخيص مي دهيم كه آيا يك كپي ديگر از Mutex تعريف شده است يانه. كه چنانچه مقدار برگشتي تابع WaitForSingleObject برابر با wait_TimeOut باشد مسلم است كه برنامه در حال اجرا مي باشد .