Saya memiliki file BAT berjalan di latar belakang pada Windows yang berlangsung sekitar sepuluh menit. Sekarang saya ingin menghentikannya saat sedang berjalan, tetapi saya tidak dapat menemukan namanya di daftar proses di task manager. Jadi bagaimana saya bisa mendekati ini? Terima kasih!
UPDATE1
Tampaknya sulit untuk menghentikan proses BAT yang berjalan di backgroud. Dan saya memutuskan untuk mencoba membunuh setiap proses yang dilakukan oleh file BAT dengan nama, yang mungkin berlebihan. Ini dapat diterima bagi saya karena sebagian besar proses dalam file BAT saya tidak sering digunakan, seperti ping, tracert, netstat dll. Jika Anda memiliki solusi yang lebih baik, silakan beri tahu saya. Terima kasih.
UPDATE2
Pohon proses BAT
ShellExecute(NULL,"open","some.bat",NULL,NULL,SW_HIDE);
di VC ++.Jawaban:
Proses biasanya diluncurkan dalam pohon seperti mode, saya akan menyarankan meluncurkan Microsoft / Sysinternals Process Explorer , Mulai dengan mengklik pada opsi
Show Process Tree
(1), kemudian menemukan proses Anda dan klik kanan dan pilihKill Process Tree
(2) Ini akan membunuh file asli dan semua yang telah diluncurkan.sumber
taskkill /F /T /IM cmd.exe
. Satu-satunya masalah adalah, setiap file BAT akan memulaicmd.exe
proses dengan PID yang berbeda Saya perlu mencari tahu mana yang menjadi target saya.Anda dapat memodifikasi file batch sehingga menggunakan file kunci untuk melanjutkan operasi, dengan memasukkan pemeriksaan antara perintah untuk keberadaan file. Untuk menghentikan eksekusi file batch, cukup hapus file-kunci.
Ini adalah file kumpulan demo:
Untuk mematikan proses yang mungkin sedang dijalankan saat ini, Anda dapat membuat file batch 'kill' yang akan berisi perintah taskkill untuk semua tugas yang mungkin diluncurkan dari file batch:
sumber
tracert
misalnya.BAT biasanya meluncurkan instance CMD.exe. Bergantung pada apa yang dilakukan skrip Anda, skrip ini juga akan memulai proses lain.
sumber
Saya menulis sebuah aplikasi yang mungkin dapat membantu Anda, setidaknya jika BAT berjalan di jendela CMD. Anda dapat melihat aplikasi windows yang sedang berjalan dan mendapatkan PID dari aplikasi, Anda kemudian dapat membunuhnya dengan aplikasi saya, Anda juga dapat melihat semua proses yang telah memunculkan dan membunuh mereka juga. Ini program yang sangat sederhana, tetapi efektif untuk hal semacam ini. Anda juga dapat menggunakannya untuk melacak di mana pada HD Anda file BAT dijalankan, jika Anda belum tahu itu.
sumber
Bagaimana file batch dipanggil?
Jika berasal dari Penjadwal Tugas, maka Anda dapat menghentikannya dari sana juga. Jika berasal dari layanan, maka Anda dapat menghentikan layanan.
sumber
Ditemukan utas papan pesan ini:
http://www.gamedev.net/community/forums/topic.asp?topic_id=261694
Itu menyarankan menggunakan ShellExecuteEx (atau CreateProcess) sehingga Anda bisa mendapatkan proses menangani, yang kemudian dapat digunakan untuk mematikan proses.
sumber
Jika Anda membukanya di command prompt Anda dapat menekan Ctrl+ C. Tunggu beberapa detik dan itu akan dihentikan.
sumber