2011-07-28 28 views
17

Tôi bắt đầu một ứng dụng Console thông qua ProcessStartInfo và process.Start(). Tôi muốn giấu cửa sổ đen. Dưới đây là mã của tôi:Làm cách nào để bắt đầu Quy trình bị ẩn?

string output = ""; 
//Setup the Process with the ProcessStartInfo class 
ProcessStartInfo startInfo = new ProcessStartInfo(); 
startInfo.FileName = "C:\\WINNT\\system32\\cmd.exe"; 
startInfo.UseShellExecute = false; 
startInfo.RedirectStandardOutput = true; 

//Start the process 
Process proc = Process.Start(startInfo); 
+0

bất kỳ giải pháp cuối cùng nào có mẫu mã nguồn đầy đủ hoạt động về nó? CreateNoWindow = true? – Kiquenet

+0

có thể trùng lặp của [Ẩn cửa sổ bảng điều khiển từ Process.Start C#] (http://stackoverflow.com/questions/5377423/hide-console-window-from-process-start-c-sharp) – sirdank

Trả lời

25

Hãy thử này:

startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; 
+4

Điều đó sẽ thực hiện thủ thuật. Chỉ thêm rằng nó phải được thiết lập trước khi gọi 'Process.Start (startInfo)'. – Cipi

+1

nhưng nó không hoạt động ở đây, một số thủ thuật khác? –

+1

không hoạt động, nhưng ... bạn nhận được một lỗi nó chỉ đơn giản là hiển thị cửa sổ màu đen? Tôi cần thêm thông tin. : D – Jonathan

5

Hãy thử

startInfo.WindowStyle = ProcessWindowStyle.Hidden; 
+0

Đã được đưa ra bởi @jonathan –

25

Câu trả lời cuối cùng là

ProcessStartInfo psi = new ProcessStartInfo(); 
psi.FileName = .... 
psi.RedirectStandardInput = true; 
psi.RedirectStandardOutput = false; 
psi.Arguments =... 
psi.UseShellExecute = false; 

psi.CreateNoWindow = true; // <- key line

+3

CreateNoWindow đã thực hiện thủ thuật cho tôi khi WindowStyle không có hiệu lực. Tôi đang chuyển hướng đầu ra tiêu chuẩn anyway và bây giờ có thể tránh được cửa sổ trống. – Timo

1
Process p = new Process(); 
.... 
p.StartInfo.CreateNoWindow = true; 
p.Start(); 
+0

Câu trả lời này không thêm kiến ​​thức mới cho câu trả lời hiện có. – ShloEmi

Các vấn đề liên quan