Сообщение Excel Во время написания кода (C #)

#c# #winforms #excel #interop

#c# #винформы #excel #взаимодействие #winforms

Вопрос:

Когда мой код запущен, у меня появляется всплывающее окно messagebox из Excel, в котором есть повторная попытка, я просто хочу, чтобы мой код мог имитировать нажатие клавиши enter, если она всплывает, что он делает каждый раз. Это окно сообщения, которое появляется и замораживает мой код.

введите описание изображения здесь

Я отключил один из них с помощью OLE-сообщения, но я все еще получаю это сообщение любым способом, чтобы имитировать нажатие кнопки повторить или ввести ключ, ?

 //Turn off OLE Error Message
oXL.DisplayAlerts = false;
  

Комментарии:

1. Если вы пройдетесь по своему коду, кажется ли, что это случайно появляется в определенной строке?

Ответ №1:

Вы можете попробовать sendkeys, чтобы отправить нажатие клавиши в окно сообщения

Ответ №2:

InputSimulator — это очень гибкая (и надежная) оболочка, которая способна имитировать события клавиатуры и мыши.

Он скрывает отправку данных под капотом, но абстрагирует все вызовы PInvoke и другие сложности. Это ошибка в DLL, которая (для вашей ситуации) должна занимать только одну строку кода.

 InputSimulator.SimulateKeyPress(VirtualKeyCode.ENTER);
  

Комментарии:

1. это довольно круто, я даже не знал, что это возможно. Спасибо

Ответ №3:

Мне интересно, вызвана ли проблема тем, что у вас большой цикл, который никогда не использует Application.DoEvents() вызов? Что касается отклонения сообщения, которое кажется мне плохим способом решения проблемы.