Şuan da hazırlamaya çalıştığım bir programda çalışan uygulamaları sonlandırmak istiyorum. Windows Görev Yöneticisinin işlemler kısmında bulunan herhangi bir uygulamayı sonlandırmak istiyorum. Bunun için hangi metodu uygulamak daha mantıklı olur sizlerden bu konuda yardım almak istiyorum. WM_CLOSE haricinde bir yöntemle kapatmak istiyorum.Örneğin Windows Görev Yöneticisinde bulunan Winamp.exe dosyasını sonlardırmak istiyoruz.
Yardımcı olabilen ve olamayan bütün arkadaşlara teşekkür ediyorum
uygulama sonlandırma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- Murat DİCLE
- Kıdemli Üye
- Mesajlar: 702
- Kayıt: 19 Nis 2006 04:12
- Konum: İstanbul
- İletişim:
Merhaba,
Saygılar..
Kod: Tümünü seç
//bu işlem için JEDI yüklü olmalıdır. yada JclSysInfo.pas..
uses ..., ..., JclSysInfo, ..., ...;
.
.
.
procedure Tform1.KillTask(H: HWND);
begin
if H > 0 then
begin
//önce adam gibi kapan kardeşim diyoz.
PostMessage(H, WM_CLOSE, 0, 0);
//netice için bekliyelim..
SleepEx(750);
//kontrol ediyoruz. kapanmış mı?
if (LowerCase(GetClassNameFromWnd(H)) <> 'cabinetwclass') And
IsWindow(H) then
begin
//madem öyle, bizde öldürürüz..
TerminateTask(H, 30);
SleepEx(500);
end;
end;
end;
procedure TForm1.KillTasks(AllKill : Boolean = False);
var TS : TStringList;
i : integer;
begin
//tabi bu örnek çalışan tüm uygulamlaarı kapatır.
//ama pencerenin adını alarak kontrolü de kapatabilirsiniz..
TS := TStringList.Create;
GetTasksList(TS);
for i := 0 to TS.Count - 1 do
if (HWND(TS.Objects[i]) <> Application.Handle) Then
KillTask(HWND(TS.Objects[i]));
TS.Free;
end;
.
.
.