У меня есть диалоговое окно установки (сделано с nsis), которое имеет две кнопки (установка и отмена). Я пытаюсь написать автоматизированные тесты для процесса установки с использованием низкоуровневого win32 api. Чтобы нажать на кнопку, я использую следующий код:Отправка сообщения BM_CLICK для приложения Windows 10 не работает
char windowName[] = "Desktop Application Setup";
char cancelButtonText[] = "Cancel";
HWND hWndMainWindow = NULL;
HWND hButton = NULL;
hWndMainWindow = FindWindow(NULL, windowName);
if (hWndMainWindow)
{
hButton = FindWindowEx(hWndMainWindow, NULL, NULL, cancelButtonText);
if (hButton)
{
SendMessage(hButton, BM_CLICK, 0, 0);
}
}
В Windows 7 это работает отлично. В Windows 10 он просто ничего не делает. Он находит кнопку, она отправляет сообщение, но щелчка просто не происходит.
Это какая-то вещь безопасности, введенная в Windows 10? Это известная проблема?
Вы собираетесь об этом неправильном пути. Не подделывайте ввод. Улучшите свой установщик, чтобы он мог принимать аргументы командной строки и выполнять автоматическую или бесшумную установку. –
Прошу прощения. Теперь я понимаю, что мое описание неоднозначно. Я хотел сказать, что я пытаюсь написать автоматизированные тесты для процесса установки (имитирующие клики пользователей). Я отредактировал описание. – conectionist
В этом случае используйте автоматизацию пользовательского интерфейса –