Tôi phải sử dụng một ứng dụng khác (bảng điều khiển) để chuyển một số tham số cho chương trình này và bên trong chương trình C# của tôi lấy đầu ra của chương trình đó. Tôi không muốn xem giao diện điều khiển (tất cả ẩn với người dùng). Làm thế nào tôi có thể làm điều đó?C# làm thế nào bạn có thể nhận được đầu ra của một tập tin thực thi khác?
5
A
Trả lời
17
Process myProcess = new Process();
ProcessStartInfo myProcessStartInfo = new ProcessStartInfo("YOUPROGRAM_CONSOLE.exe");
myProcessStartInfo.UseShellExecute = false;
myProcessStartInfo.RedirectStandardOutput = true;
myProcess.StartInfo = myProcessStartInfo;
myProcess.Start();
StreamReader myStreamReader = myProcess.StandardOutput;
string myString = myStreamReader.ReadLine();
Console.WriteLine(myString);
myProcess.Close();
Nguồn: MSDN
được sửa đổi: Nếu bạn cần để có được những thông báo lỗi, bạn sẽ cần phải sử dụng hoạt động async. Bạn có thể sử dụng các hoạt động đọc không đồng bộ để tránh những phụ thuộc này và tiềm năng bế tắc của chúng. Cách khác, bạn có thể tránh tình trạng bế tắc bằng cách tạo hai luồng và đọc đầu ra của mỗi luồng trên một luồng riêng biệt.
Các vấn đề liên quan
- 1. làm thế nào chúng ta có thể sử dụng một tập tin thực thi trong c + +?
- 2. Làm thế nào để có được một tập tin thực thi để xử lý không gian trong tên tập tin?
- 3. Làm thế nào để bạn sử dụng SETLOCAL trong một tập tin thực thi?
- 4. Làm thế nào để bạn nhận được đầu ra của một lệnh hệ thống trong Go?
- 5. có/không có tập tin thực thi
- 6. Làm thế nào để thực hiện cuộc gọi đến một tập tin thực thi từ tập lệnh Python?
- 7. làm thế nào để gửi đầu ra của mô-đun pprint vào một tập tin log
- 8. Làm thế nào để tạo một tập tin thực thi của dự án java fx 2.0
- 9. chạy một tập tin thực thi từ C#
- 10. Làm thế nào để gửi một email đơn giản từ một tập tin thực thi Windows?
- 11. Làm thế nào để đọc nội dung tập tin vào một biến trong một tập tin thực thi?
- 12. Làm thế nào để có được đường dẫn đầy đủ của tập tin từ một tập tin đầu vào
- 13. Làm thế nào để đọc đầu vào từ bàn điều khiển trong một tập tin thực thi?
- 14. Làm thế nào để bạn chọn tên tập tin của một maven jar-với-phụ thuộc?
- 15. Làm thế nào để đường dẫn đầu ra của một lệnh để tập tin trên Linux
- 16. làm thế nào để thực hiện các tập tin thực thi chờ đợi cho đến khi một tập tin thực thi hoàn thành?
- 17. Tạo một tập tin thực thi với lệnh "IF"
- 18. Làm thế nào libraires java từ một tập tin EAR có thể được truy cập bởi một tập tin EAR?
- 19. % * có nghĩa là gì trong một tập tin thực thi
- 20. Làm thế nào để chờ quá trình chấm dứt thực hiện một quy trình khác trong tập tin thực thi
- 21. Liệu một thực thi có thể khám phá ra con đường riêng của nó? (Linux)
- 22. Làm thế nào để bỏ qua "bạn có chắc chắn Y/N" khi xóa các tập tin trong tập tin thực thi
- 23. Làm thế nào tôi có thể xác định tên đầu ra của một StreamResult trong Struts2?
- 24. thế nào để chạy một tập tin thực thi cmd.exe trong một vỏ tiểu
- 25. Làm thế nào để nhận được loại MIME của một tập tin được yêu cầu trong ASP.NET C#?
- 26. Làm thế nào để có được danh sách thư viện chia sẻ thực thi từ C++?
- 27. Làm thế nào thường python tuôn ra một tập tin?
- 28. Làm thế nào để có được tên tập tin của một DLL?
- 29. Làm thế nào để chạy một chương trình thực thi với tập tin cấu hình khác nhau?
- 30. Làm thế nào để xác nhận một tập tin đầu vào về phía khách hàng (Javascript)
Bạn cũng sẽ muốn bật "RedirectStandardError" và đọc luồng đó, Trong trường hợp quá trình phụ của bạn tạo thông báo lỗi. – gimel
Tôi đã thêm một số thông tin. Trong MSDN nó nói rằng nó đòi hỏi nhiều chủ đề để tránh bế tắc. –
Nếu bạn thực sự muốn xuất ra bàn điều khiển, bạn có thể sử dụng 'Console.SetIn (myProcess.StandardOutput);' thay cho đối tượng StreamReader-Object bổ sung. –