Tôi đang tích hợp SDK dựa trên C của bên thứ ba vào ứng dụng .NET của mình. Ứng dụng sẽ chạy như một dịch vụ Windows trên một máy chủ, vì vậy nó không nên tương tác với người dùng theo bất kỳ cách nào.Làm cách nào để ngăn thư viện của bên thứ ba hiển thị MessageBox?
Thật không may, trong một số điều kiện lỗi nhất định, nó nhấn mạnh vào việc gọi MessageBoxA, có lẽ là để báo cáo điều gì đó xấu đã xảy ra. Khi điều này xảy ra, dịch vụ sẽ ngừng phản hồi. Tôi đoán rằng nó đang chờ ai đó bấm Ok?
Không thể để nhà cung cấp thay đổi mã của họ cho tôi.
Có cách nào tôi có thể thực hiện cuộc gọi này thành no-op để mã của tôi có thể tự động xử lý tình huống này không?
EDIT: Có thể điều quan trọng cần lưu ý là trong trường hợp cụ thể của tôi dịch vụ sẽ tự động khởi động lại nếu nó bị lỗi. Một lối thoát bất ngờ (có thể) và đột ngột có lẽ là độ phân giải tốt nhất cho một tình huống mà một MessageBox được hiển thị trong trường hợp của tôi.
Nó không phải là một câu trả lời thực sự tôi biết, nhưng tìm thấy một thư viện/dịch vụ tốt hơn. Nếu một thư viện có loại vấn đề này, nó phải chịu nhiều hơn. –
Tôi nhớ một cựu đồng nghiệp ngốc của tôi đặt trong một hộp thư trong mã được biết đến là một dịch vụ.Tôi đã nói với anh ta để loại bỏ nó nhưng anh ấy vẫn còn lại nó và chúng tôi đã phải phát hành lại phần mềm ... là không tốt. – Tim
Không, nói nó không phải là một MessageBox từ một thư viện !!!! Câu hỏi hay –