PDA

View Full Version : چگونه تشخیص بدهیم که برنامه ما در حال اجراست



barbod_ahmadi
دوشنبه 24 اسفند 1383, 12:19 عصر
سلام
کد زیر باعث می شودبرنامه شما فقط یکبار اجرا شود ، آن را در بلوک اصلی پروژه خود قرار دهید

Uses
Windows ;
Var
HMutex : THandle;
begin
HMutex := Createmutex ( nil, false , 'OneCopyMutex');
if WaitForSingLeobject ( HMutex , 0 ) <> Wait_Timeout then
Begin
Application.Initialize ;
Application.CreateForm (TForm1 , Form1 );
Application.Run;
end;
end;

Babak-Aghili
دوشنبه 24 اسفند 1383, 13:24 عصر
با تشکر از زحمت شما .

1- ای کاش کد خود را درون بلوک قرار میدادید که خواناتر باشد

2- ای کاش منبع خودتان را هم معرفی میکردید : من اینکار را برای شما انجام میدهم : 296 برنامه اجرا شده در دلفی . تالیف حسین ریاضی . برنامه شماره 2 .

:موفق:

hr110
دوشنبه 24 اسفند 1383, 13:33 عصر
مورد یک رو هم من براشون انجام دادم،

اقای احمدی به فضای برنامه نویس خوش آمدید :flower:

arshia_
شنبه 17 آذر 1386, 12:47 عصر
داشتم دنبال یه سوال می گشتم به این کد برخوردم.حیفم اومد برنامه خطای منظقی داشته باشه و به خاطر یه اشتباه تایپی نتیجه مناسب رو نده (با اینکه 3 سال از آخرین پست می گذره ولی من کد رو دوباره گذاشتم )

به جای علامت بزرگتر باید کوچکتر گذاشته شود وگرنه برنامه اصلا اجرا نمی شودو دائما خارج می گردد



program Project1;
uses
windows,Dialogs,
Forms,
Unit1 in 'Unit1.pas' {Form1};
Var
HMutex : THandle;
{$R *.res}
begin
HMutex := Createmutex ( nil, false , 'OneCopyMutex');
if WaitForSingLeobject ( HMutex , 0 )< Wait_Timeout then
Begin
Application.Initialize ;
Application.CreateForm(TForm1, Form1);
Application.Run;
end
else showmessage('already run');
end.

سيد مجتبي هاشمي
چهارشنبه 20 آذر 1387, 09:03 صبح
داشتم دنبال یه سوال می گشتم به این کد برخوردم.حیفم اومد برنامه خطای منظقی داشته باشه و به خاطر یه اشتباه تایپی نتیجه مناسب رو نده (با اینکه 3 سال از آخرین پست می گذره ولی من کد رو دوباره گذاشتم )
به جای علامت بزرگتر باید کوچکتر گذاشته شود وگرنه برنامه اصلا اجرا نمی شودو دائما خارج می گردد

program Project1;
uses
windows,Dialogs,
Forms,
Unit1 in 'Unit1.pas' {Form1};
Var
HMutex : THandle;
{$R *.res}
begin
HMutex := Createmutex ( nil, false , 'OneCopyMutex');
if WaitForSingLeobject ( HMutex , 0 )< Wait_Timeout then
Begin
Application.Initialize ;
Application.CreateForm(TForm1, Form1);
Application.Run;
end
else showmessage('already run');
end.



با تشکر از شما. اما من از این کد که استفاده کردم، در زمان اجرا خطاهای زیر را نشان میدهد و برنامه اجرا نمیشود.

سيد مجتبي هاشمي
چهارشنبه 20 آذر 1387, 09:06 صبح
کسی از دوستان میتونه به من بگه منظور از پست در مشخصات هر یک از اعضا چیست؟

arshia_
چهارشنبه 20 آذر 1387, 11:13 صبح
پست تعداد ارسالهايي است كه هر كاربر انجام داده است.مثل همين مطلبي كه من دارم مي نويسم.
اين كد را بايد در فايل اصلي پروژه قرار دهيد
من بدون مشكل اجراي مجدد كردم
ممكن است شما اين كد را به فرم اضافه كرده ايد؟؟؟