Tôi đang cố gọi một tệp thực thi lúc khởi động, sẽ gọi một thực thi khác. Đối với phần đầu tiên, tôi chỉ cần thêm đường dẫn đến tệp thực thi vào HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
, hoạt động, tệp thực thi của tôi được gọi khi khởi động.Subprocess.Popen(): ẩn vỏ cmd
Sau đó chứa, trong số những người khác, những dòng này:
startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
startupinfo.wShowWindow = subprocess.SW_HIDE
proc = subprocess.Popen(command, startupinfo=startupinfo)
Tuy nhiên, một tiện ích dòng lệnh (cmd) bật khi máy tính khởi động. Tất cả mọi thứ hoạt động tốt, nhưng nó có thể nhìn thấy thay vì ẩn ... Vì vậy, về cơ bản, làm thế nào để ẩn vỏ lệnh này?
Khi sử dụng ProcessExplorer
, tôi đã phân cấp sau:
+ System
|_ Interrupts
|_ smss.exe
|_ some processes...
+ explorer.exe
|_ some processes...
|_ MYSCRIPT.EXE
Dưới đây là trình tự tôi cố gắng để đạt được:
- tôi có thể tạo một tập tin ISO chứa tất cả các Python thực thi Tôi muốn chạy trên máy ảo. Một trong số họ (
master.exe
) gọi những người khác. - tôi có thể tạo một máy ảo có thể tự động gắn kết sau
- Các VM, mà đã được chuẩn bị, có một nhiệm vụ theo lịch trình trong đó kêu gọi
D:\master.exe
master.exe
(giữa các nhiệm vụ khác mà không phải là mối quan tâm của chúng tôi ở đây) cho biết thêm giá trịD:\myscript.exe
-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
- VM khởi động lại
D:\myscript.exe
được chạy (và nó hoạt động tốt và như đã tham dự), nhưng nó chạy trong dấu nhắc lệnh mà tôi muốn ẩn.
Theo nguyên tắc chung, để ẩn một cửa sổ trình, tôi chạy nó thông qua VBScript (phương pháp .run). Nhưng có vẻ như, python cung cấp cho bạn một cách bản địa. :-) – anishsane
liên quan: [Làm cách nào để ẩn bảng điều khiển khi tôi sử dụng os.system() hoặc subprocess.call()?] (Http://stackoverflow.com/q/7006238/4279) – jfs