ورود

View Full Version : چیکار کنیم که فایل اجرایی برنامه دو بار اجرا نشه ؟



مهندس
چهارشنبه 11 شهریور 1383, 08:56 صبح
سلام

وقتی برنامه ای رو فایل exe اون رو اجرا میکنیم خوب برنامه اجرا میشه اما وقتی برنامه در حال اجرا است اگر دوباره فایل اجرایی برنامه رو اجرا کنیم دوباره اجرا میشه مثل فایل calc.exe در ویندوز.........

ولی اگه بخوایم دیگه اجرا نشه مثل Outlook Express یا Winmine.exe چه کار باید کرد چون ایجاد مشکل میکنه...

مثلا اگر برنامه برای بار دوم اجرا شد همون برنامه بار اول اجرا شده رو نشون بده؟ :roll:

nasr
چهارشنبه 11 شهریور 1383, 09:04 صبح
سلام

برای اینکار بهترین کار جستجو است

چون این سوال را من تا حالا چند بار دیدم :)

ara_prg
چهارشنبه 11 شهریور 1383, 09:12 صبح
برای این کار راههای زیادی وجود دارد. یکی از آنها را در Demos خود دلفی می توانی پیدا کنی؟

\Demos\Ipcdemos

اگر برنامه monitor.exe را چند بار اجرا کنی باز هم بیشتر از یک بار اجرا نخواهد شد.
در این برنامه با استفاده از تابع CheckPreviousInstance (که در فایل اصلی پروژه قرار دارد) وجود برنامه در حافظه چک می شود. به برنامه نگاه کن و اگر متوجه نشدی بگو تا بیشتر توضیح بدهم. :متفکر:

SalarSoft
چهارشنبه 11 شهریور 1383, 18:07 عصر
این تابع نشان می دهد که یک نسخه دیگر از فایل اجرایی شما اکنون در حال اجرا هست یا نه:


Function IsRunningApp:Boolean;
var
Hwnd:Thandle;
begin
hwnd:=CreateMutex(nil,False,'OneCopyMutex');
Result:=false;
If not(WaitForSingleObject(Hwnd,0)<>Wait_TimeOut) then
Result:=true;
end;