Apa cara yang tepat untuk menutup / keluar program dari baris perintah, mirip dengan menekan tombol tutup "X" di sudut jendela?
Saya mencoba untuk menutup chrome di bawah 3 versi windows yang berbeda: win7 ultimate, win7 home, winXP
Di bawah Ultimate dan XP: TSKILL chrome
Di Bawah Rumah TASKKILL /IM chrome.exe
TSKILL chrome
::
(Ini menutup chrome, tidak ada kesalahan cmd,
tetapi mengembalikan kesalahan chrome ketika meluncurkan kembali)
TASKKILL /IM chrome.exe
:
(Ini menutup chrome, tidak ada kesalahan chrome ketika meluncurkan ulang,
tetapi kesalahan dalam cmd: "tidak mungkin untuk menghentikan proses anak (sekitar 4-5), hanya dengan paksa dengan /F
")
Haruskah saya mengabaikan kesalahan anak cmd jika pada peluncuran ulang chrome tidak menunjukkan kesalahan ?
sumber
Jawaban:
Cara yang tepat untuk menutup / keluar dari suatu program pada akhirnya tergantung pada perangkat lunaknya. Namun, umumnya praktik terbaik adalah menutup program Windows setiap kali mereka menerima pesan WM_CLOSE. Melepaskan memori dan pegangan penutup dengan benar. Ada pesan lain yang dapat memberi sinyal penutupan aplikasi, tetapi tergantung pada pembuat perangkat lunak bagaimana masing-masing pesan ditangani.
taskkill mengirim pesan WM_CLOSE dan kemudian terserah aplikasi apakah akan ditutup dengan benar. Anda mungkin juga ingin menggunakan
/T
opsi ini untuk juga menandakan proses anak.Hanya gunakan
/F
opsi jika Anda ingin memaksa penghentian proses.Pilihan lain termasuk mengirim kunci Alt + F4, menggunakan PowerShell, atau aplikasi pihak ketiga.
Perbarui ke Pertanyaan yang Diperbarui
Abaikan, kesalahannya. Chrome menghasilkan banyak proses. Kesalahan ini disebabkan ketika suatu proses tidak mengakui pesan WM_CLOSE yang dikirim TASKKILL. Hanya proses dengan loop pesan yang akan dapat menerima pesan, oleh karena itu, proses yang tidak memiliki loop pesan akan menghasilkan kesalahan itu. Kemungkinan besar, proses ini adalah ekstensi dan plugin chrome.
Untuk menyembunyikan kesalahan, ambil output
Rangkuman: TASKKILL adalah cara yang tepat melalui baris perintah untuk menutup aplikasi sesuai implementasi WM_CLOSE dan Microsoft KB yang saya tautkan .
sumber
>
adalah operator pengalihan untuk cmd.exe dannul
merupakan kekosongan ruang di mana hal-hal pergi ke tidak pernah terdengar lagi.Coba NirCmd (Unduh: x86 x64 )
Ini memiliki perintah "closeprocess" yang dirancang untuk menutup proses dengan anggun. Sesuai dokumennya, itu tidak menghentikan aplikasi tetapi mengirim
WM_CLOSE
ke semua jendela tingkat atas dari proses target.contoh penggunaan:
Jika ini tidak berhasil, saya yakin aplikasi Anda memiliki prosedur pembersihan yang tidak biasa. Saya ingin melihat apa yang terjadi di dalam jadi tolong beri tahu saya apa aplikasi target Anda.
sumber
Jawaban untuk pertanyaan itu dapat ditemukan
here
( tautan Microsoft ).Anda dapat mengirim
WM_CLOSE
pesan ke jendela mana saja yang ingin Anda tutup. Banyak jendela menanganiWM_CLOSE
untuk meminta pengguna untuk menyimpan dokumen.Alat yang melakukan ini dengan benar adalah
@Kill
. Lihat juga SendMsg .Saya tidak tahu bagaimana melakukan ini dalam batch, tetapi Anda bisa menggunakan vbscript untuk ini. Mensimulasikan tombol Alt+ F4(sama dengan sinyal
WM_CLOSE
).Jalankan dan lihat perilaku skrip ini di bawah ini.
Here
adalah nama kunci daftar untuk SendKeys.Ketika Anda menjalankan skrip, notepad terbuka, beberapa kata ditulis dan kemudian sinyal untuk menutup program disampaikan, lihat gambar di bawah.
Pertanyaan tambahan
Bisakah saya memulai program yang diperkecil, atau latar belakang dengan vbscript?
Iya. Gunakan kode berikut:
Untuk informasi lebih lanjut, periksa
Run Method
.Bisakah chrome membuka beberapa url di vbscript?
Jika chrome adalah default, gunakan:
Source
Apakah ada cara untuk membawa fokus ke aplikasi tertentu ( chrome.exe )?
Here
dalam sebuah contoh.Saya ingin mengirim alt + f4 HANYA ke chrome, terlepas dari apa yang saya lakukan dengan windows lain.
Kode berikut ini berfungsi pada Windows 8 .
sumber
Ada beberapa utilitas baris perintah yang dapat mengirim
WM_SYSCOMMAND
pesan yang sesuai (denganSC_CLOSE
sebagai perintah) ke jendela tingkat atas program. Saya yakin bahwa setidaknya satu akan disebutkan segera. (Kemudian seseorang akan menyebutkan AutoIt. Maka akan ada jawaban yang menunjukkan bagaimana melakukannya dengan PowerShell danCloseMainWindow()
.)Utilitas baris perintah yang datang sebagai perintah bawaan di JP Software TCC , sebuah interpreter perintah dan prosesor skrip perintah untuk Windows, disebut
TASKEND
.sumber
Baiklah, tidak akan berbohong. Saya melihat ini di stackoverflow dan berpikir itu adalah pertanyaan yang menantang. Soooo Saya hanya menghabiskan 2 jam terakhir menulis beberapa kode. Dan ini dia ....
Setelah mengikuti langkah-langkah di bawah ini, Anda dapat mengetik "TaskClose notepad.exe" setelah menekan "Start" dan itu akan secara otomatis menyimpan semua file notepad tidak berdokumen ke desktop. Ini akan menutup chrome.exe secara otomatis dan menyimpan pengaturan pemulihan.
Anda dapat menambah dan menghapus pengaturan tambahan untuk aplikasi lain dalam kondisi if. Misalnya:
File vbs dan batch melakukan prosedur berikut:
ReturnAppList.bat: instal di "C: \ windows \ system32 \"
TaskClose.bat: instal di "C: \ windows \ system32 \" AND "C: \ Users \ YourUserName \"
TaskClose.vbs: instal di "C: \ windows \ system32 \"
Ini sangat menyenangkan untuk ditulis dan saya lebih senang menyelesaikannya daripada benar-benar menunjukkan jawabannya. Semoga minggu Anda menyenangkan!
sumber