2010-08-16 37 views
7

Tôi phải chạy ứng dụng bảng điều khiển từ Ứng dụng Windows của mình. Việc áp dụng giao diện điều khiển Tôi muốn chạy là một nguồn nhúng trong ứng dụng của tôi, và tôi gọi nó như thế này:Cửa sổ bảng điều khiển vẫn xuất hiện ngay cả sau khi ProcessWindowStyle.Hidden;

// Run the updater and grab its output 
Process Updater = new Process(); 
Updater.StartInfo.FileName = "C:\\tmp\\tmp.exe"; 
Updater.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
Updater.StartInfo.UseShellExecute = false; 
Updater.StartInfo.RedirectStandardOutput = true; 
Updater.Start(); 
string UpdaterOutput = Updater.StandardOutput.ReadToEnd(); 
Updater.WaitForExit(); 

Nó chiết xuất tốt, và nó chạy tốt, và nó cũng lấy đầu ra của nó hoàn toàn tốt ... nhưng tôi vẫn có thể thấy giao diện điều khiển Cửa sổ bật mở nhanh khi nó chạy. Tôi biết giao diện điều khiển bật lên là từ ứng dụng này vì tiêu đề giao diện điều khiển là C:\tmp\tmp.exe. Có cách nào hoàn toàn không bằng chứng để ẩn các ứng dụng giao diện điều khiển? Tôi nghĩ sử dụng ProcessWindowStyle.Hidden sẽ làm điều đó nhưng dường như không.

Cảm ơn.

+0

Câu hỏi này được trả lời, xin vui lòng đóng thread của bạn. –

+0

@Hans Passant - Câu trả lời của tôi có thể được chấp nhận nếu tôi đã đạt đến giới hạn đại diện cho ngày đó không? – fletcher

+1

@fletch: chắc chắn, không có giới hạn về điểm đánh dấu câu trả lời. –

Trả lời

16

Đặt ProcessStartInfo.CreateNoWindow tài sản để true

+0

Ah, tôi đã từng sử dụng nó trước đây nhưng không nghĩ nó tạo ra sự khác biệt khi tôi sử dụng 'ProcessWindowStyle.Hidden'. Và tôi cần phải đặt nó thành sự thật, không sai. Cảm ơn rất nhiều! :) – Kratz

+1

Vâng, đã muộn rồi. Tôi đã nhầm lẫn, gấp đôi số âm bản ... – fletcher

+0

là tốt hay thay vì? – barlop

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