Tôi cần có khả năng bắt đầu quy trình (cả bàn điều khiển và cửa sổ) mà không bị lấy cắp tiêu điểm. Cách duy nhất trong khuôn khổ .NET mà tôi tìm thấy để thực hiện điều này là Microsoft.VisualBasic.Interaction.Shell với Microsoft.VisualBasic.AppWinStyle. [Thu nhỏ | Bình thường] NoFocus (ánh xạ tới SW_SHOWMINNOACTIVE/SW_SHOWMA được chuyển tới ShellExecute).Bắt đầu một quá trình mà không lấy cắp tiêu điểm (C#)
Trong phiên bản hiện tại của mã của tôi (mà không lấy được tiêu điểm), tôi đang sử dụng System.Diagnostics.Process và dựa vào một số chức năng cung cấp cho tôi, phương thức Interaction.Shell thì không.
2 câu hỏi (một nghiêm trọng, và một trút sự thất vọng của tôi mà tôi không thực sự mong đợi một câu trả lời tốt đến)
1.) Tôi thích hợp mà tôi không có lựa chọn nào khác để bọc CreateProcess hoặc ShellExecuteEx bản thân mình, hoặc tôi thiếu một số giải pháp khác? Tôi đã thực sự hy vọng để tránh điều này, vì Process là một wrapper hoàn chỉnh và hữu ích khác với sự giám sát này, và sẽ có rất nhiều chức năng để thực hiện, P/Invoke các cuộc gọi để gỡ lỗi, và tất cả các loại đau đớn. 2. Tại sao một nhóm ở Microsoft tạo ra một trình bao bọc hoàn chỉnh (nếu không), và sau đó loại trừ một nửa các giá trị có thể có từ ProcessWindowStyle, trong khi một nhóm khác đã tạo ra một trình bao bọc tương tự ít hoàn chỉnh hơn, nhưng cung cấp tất cả phong cách cửa sổ hữu ích?
Bạn đang mã hóa thứ gì đó bạn không muốn người dùng biết hoặc không muốn làm phiền người dùng? LOL nevermind ...: -/ – jasonco
Không có lựa chọn? Không gian tên Microsoft.VisualBasic là một phần của khung công tác .NET và có sẵn trên bất kỳ cài đặt .NET nào. Không sử dụng nó sẽ là một sai lầm.Nó có nhiều tính năng khác nhưng bạn không thể tìm ra nếu bạn không thể vượt qua tên không gian tên. –
Hi nobugz, tôi xin lỗi nếu tôi cho ấn tượng rằng tôi đã có một vấn đề với không gian tên. Đó không phải là vấn đề của tôi, trên thực tế tôi sử dụng một trình phân tích cú pháp tốt đẹp từ Microsoft.VisualBasic trong một phần khác của mã. Vấn đề là Microsoft.VisualBasic.Interaction.Shell không cho tôi khả năng được thông báo khi thoát hoặc hủy bỏ một tiến trình. Tôi sẽ phải bằng cách nào đó quấn nó để có được chức năng đó, trong đó lớp Process cho tôi cả những thứ đó. – psm321