Основы: У меня есть приложение Windows .NET Form со встроенным элементом управления WebBrowser. Это вызывает загрузку, которая открывает диалоговое окно «Сохранить загрузку». Я хотел бы автоматически нажать кнопку «Сохранить».
Я нашел этот другой вопрос StackOverflow: Нажмите кнопку сохранения в "диалоге загрузки файлов" в Internet Explorer через c # , но он не имеет реальных ответов.
Код, который у меня есть, не работает надежно при развертывании на реальной рабочей станции. Запустив его в отладке / из Visual Studio, он работает нормально. На реальных рабочих станциях иногда кнопка «Сохранить» «подсвечивается» или нажимается, как будто она нажата, но на самом деле ничего не происходит.
Здесь будет код:
Dim dialogHandle = FindWindowEx(IntPtr.Zero, IntPtr.Zero, "#32770", "File Download")
Dim buttonTitle = "&Save"
Dim dialogButtonHandle = FindWindowEx(dialogHandle, IntPtr.Zero, "Button", buttonTitle)
SendMessage(dialogButtonHandle, BM_SETSTATE, 0, 0)
SendMessage(dialogButton, BM_CLICK, 1, 0)
SendMessage(dialogButtonHandle, BM_SETSTATE, 1, 0)
Я понятия не имею, является ли это полностью 100% правильным способом нажатия кнопок в других окнах, но, похоже, это работает. Может быть, я посылаю SendMessage слишком быстро? Слишком медленно? Должен ли я использовать SendMessage с BM_CLICK и т. Д. Или какие-либо другие действия? Я чувствую, что я нахожусь на 90% пути ... любая помощь будет оценена.