View Full Version : سوال: چطوری یک فیل EXE خارجی را با دلفی 7 ببندیم؟
ali_abbasi22145
شنبه 26 فروردین 1391, 17:13 عصر
سلام
چطوری یک برنامه EXE خارجی را با دلفی 7 ببندیم؟
فایل را یا این دستور باز کردم وحلا بعد پایان کار می خواهم ببندم
ShellExecute(Handle, 'open', 'c:\test.exe', nil, nil, SW_SHOWNORMAL) ;
Felony
شنبه 26 فروردین 1391, 17:18 عصر
با استفاده از تابع FindWindow هندل پنجره مربوط به برنامه رو به دست بیارید و با استفاده از تابع CloseWindow برنامه رو ببندید یا اینکه پیغام WM_Close رو به پنجرش ارسال کنید .
ali_abbasi22145
یک شنبه 27 فروردین 1391, 11:24 صبح
لطفا کد دلفی اینجا بگذارید که اگر برنامه 'c:\test.exe' کارش تمام شد آنوقت ببندد
Felony
یک شنبه 27 فروردین 1391, 12:01 عصر
دوست عزیز بعد از این همه وقت عضویت هنوز روش جست و جو رو نمیدونید ؟!
قرار نیست من برای شما کدی بنویسم ، سوالی پرسیدید و موارد مورد نیاز برای پیدا کردن جواب سوالتون ارائه شد ، کافی بود هر کدوم از کلید واژه هایی که بهتون معرفی کردم رو جست و جو کنید ، اگر میخواین با استفاده از نام فایل اجرایی برنامه رو ببندید میتونید با استفاده از توابع EnumProcesses یا Process32First و Process32Next لیست پروسه ها رو به دست بیارید و بعد با استفاده از تابع TerminateProcess پروسه مورد نظر رو ببندید ، یا از کامپوننت Process Info آقای کشاورز استفاده کنید که همراه خودش Demo خوبی هم داره یا از کد زیر استفاده کنید :
function KillTask(ExeFileName: string): Integer;
const
PROCESS_TERMINATE = $0001;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
Result := 0;
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
while Integer(ContinueLoop) <> 0 do
begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeF ile)) =
UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
UpperCase(ExeFileName))) then
Result := Integer(TerminateProcess(
OpenProcess(PROCESS_TERMINATE,
BOOL(0),
FProcessEntry32.th32ProcessID),
0));
ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;
به خدا اگر جست و جو کنید تمامی این موارد چندین بار در سایت در موردشون بحث شده ، کمی به خودتون زحمت بدید ، وقتی که برای جواب دادن به این سوالت پیش پا افتاده گذاشته میشه جهت بالابردن سطح علمی سایت و ارائه مقالات و پاسخ به سوالات فنی تر گذاشت ...
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.