PDA

View Full Version : یک سوال فنی (فراخوانی یک دستور برنامه از قبل باز شده)



hamid_shoja_33
پنج شنبه 10 فروردین 1385, 16:13 عصر
سلام
ببینید دوستان
اگر یه برنامه داشته باشیم که در حال اجرا باشد مثلا برنامه میمایز یا در سیستم ترای باشد بعد دوباره برنامه رو اجرا کنیم چطور می شه از اجرای دوباره برنامه جلوگیری کرد و همون برنامه قبلی ماکسیمایز بشه یا اینکه یکی از دستورات برنامه قبلی اجرا بشه؟
ممنون می شم چواب بدین :خجالت:

Mahmood_M
جمعه 11 فروردین 1385, 00:29 صبح
دوست عزیز با این تابع می تونید بفهمید که برنامتون داره اجرا می شه یا نه،
اگه این تابع مساوی با True بود، می تونید یک پیغام بدید و بعد برنامه رو ببندید ...
اینم تابع :


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;


طریقه استفاده :


if IsRunningApp = True then
begin
MessageBox(Handle, 'Program is already Running', '', MB_OK+MB_ICONEXCLAMATION);
Form1.Close;
end

موفق باشید ...