10-10-2017, Saat: 20:35
Aynı exeden virden fazla uygulama açıksa sıkıntı. Hangisi kapanacak?
|
Görev yöneticisinden program sonlandırma
|
|
10-10-2017, Saat: 20:35
Aynı exeden virden fazla uygulama açıksa sıkıntı. Hangisi kapanacak?
11-10-2017, Saat: 02:05
(Son Düzenleme: 11-10-2017, Saat: 08:03, Düzenleyen: Fesih ARSLAN.)
Bu kod ile görev yöneticisindeki çalışan programı ismi üzerinden bulabilirsin.
function FindWindowByTitle(WindowTitle: string): Hwnd; var NextHandle: Hwnd; NextTitle: array [0 .. 260] of char; begin NextHandle := GetWindow(Application.Handle, GW_HWNDFIRST); while NextHandle > 0 do begin GetWindowText(NextHandle, NextTitle, 255); if Pos(WindowTitle, StrPas(NextTitle)) <> 0 then begin Result := NextHandle; Exit; end else NextHandle := GetWindow(NextHandle, GW_HWNDNEXT); end; Result := 0; end; Bu function ile de exeyi solandırabilirsin 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.szExeFile)) = 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; //---------------------------------------------------------------------------------------------- procedure KillProcess(hWindowHandle: HWND); var hprocessID: INTEGER; processHandle: THandle; DWResult: DWORD; begin SendMessageTimeout(hWindowHandle, WM_CLOSE, 0, 0, SMTO_ABORTIFHUNG or SMTO_NORMAL, 5000, DWResult); if isWindow(hWindowHandle) then begin GetWindowThreadProcessID(hWindowHandle, @hprocessID); if hprocessID <> 0 then begin processHandle := OpenProcess(PROCESS_TERMINATE or PROCESS_QUERY_INFORMATION, False, hprocessID); if processHandle <> 0 then begin TerminateProcess(processHandle, 0); CloseHandle(ProcessHandle); end; end; end; end; KillTask(FindWindowByTitle('programismi'));
KillProcess(FindWindowByTitle('programismi'));
11-10-2017, Saat: 09:38
tlhelp32 kütüphanesinde fonksiyon yazarak görev yöneticisinden kapatabildim. Yardımlarınız için çok teşekkürler.
11-10-2017, Saat: 10:14
(11-10-2017, Saat: 02:05)dicle_gsm Adlı Kullanıcıdan Alıntı:
Maalesef burada bir hata var: Verdiğiniz koddaki FindWindowByTitle fonksiyonu HWND tipinde sonuç döndürüyor. Sonra bu dönen değeri KillTask'ta kullanmışsınız ama KillTask parametre olarak string değer bekliyor
There's no place like 127.0.0.1
13-10-2017, Saat: 22:26
Daha önce benzer bir soruya şurada bir cevap vermişim.İşinizi görüyor ise Tıklayınız
Ayakkabıyı sefaletten
Çok sonraları tanıdım Öyle ufuklarda mı olurmuş Allah'ım Giyer giyer koşardım Toprağın dostluğundan Oyuncaklar yaptım çamurdan Tenimin rengini aldım topraktan Sen bakma esmerliğim sonradan... |
|
« Önceki Konu | Sonraki Konu »
|
| Konu ile Alakalı Benzer Konular | |||||
| Konular | Yazar | Yorumlar | Okunma | Son Yorum | |
| Açılıp Gizlenen Program | bünyamin68 | 5 | 1.206 |
25-04-2024, Saat: 10:47 Son Yorum: Tuğrul HELVACI |
|
| [ÇÖZÜLDÜ] macos işletim sistemine program yazmak | shooterman | 5 | 1.751 |
02-02-2024, Saat: 09:54 Son Yorum: shooterman |
|
| program exe icon sorunu | cvheneburi | 9 | 5.291 |
19-10-2023, Saat: 15:04 Son Yorum: harunyl |
|
| program boşta kalmışsa | info@guzelceker.com | 3 | 2.076 |
10-04-2023, Saat: 13:02 Son Yorum: ozcanm |
|
| Program güvenliği | HakanY | 3 | 1.570 |
12-11-2021, Saat: 19:17 Son Yorum: enigma |
|