Я должен написать автоматический установщик. Просто программа, которую вы запускаете, и она должна пройти мастер установки самостоятельно, без какого-либо касания пользователя.Почему FindWindowEx не находит все мои кнопки?
Программа, над которой я сейчас работаю, называется Cygwin. И что я хочу сделать, просто нажмите кнопку «Далее» снова и снова, пока установка не будет завершена. Я знаю, что могу использовать VBS, и я знаю, что могу использовать C#, и это сделало бы жизнь немного легче для меня. Но у меня есть пример того, как он может работать для другой программы, и я пытаюсь адаптировать его для Cygwin на C++.
HWND WINAPI FindWindowEx(
_In_opt_ HWND hwndParent,
_In_opt_ HWND hwndChildAfter,
_In_opt_ LPCTSTR lpszClass,
_In_opt_ LPCTSTR lpszWindow
);
Это функция, которую я использую, чтобы найти кнопку, и на следующем шаге она должна быть нажата. У меня есть окно программы в hwndParent, и это отлично работает. hwndChildAfter и lpszClass - «NULL», а lpszWindow - это имя кнопки. Это работает для кнопки «Abbrechen» (немецкий для отмены). Но когда я меняю это имя на «Weiter» (German for Next), он больше не работает. Он просто не находит его. Я думаю, что это как-то связано с тем, как написано «Weiter». Это не только единственное слово. Все выражение «Weiter>» Конечно, я положил все выражение в lpszWindow с «вокруг», как и с «Abbrechen». Но, как я уже сказал, он не находит его. Я пробовал все варианты написания, но это не работает.
Кто-нибудь знает, есть ли проблема «>» или «» (пробел), и из-за этого он не может ее прочитать. И если это так, есть ли способ вокруг него? Или можно получить идентификатор кнопки или что-то подобное, что может быть использовано для указания программе, где нужно установить щелчок мыши.
Я знаю, как я уже сказал, что C++ на самом деле не лучший язык для этой задачи, и, в конце концов, я думаю, что я перейду на что-то еще. Но я действительно хотел бы знать, почему он работает для «Аббречен» и почему он не работает для «Weiter>».
Так что если у кого-то есть решение, я был бы очень благодарен. Благодаря!
Попробуйте использовать spy ++ для получения правильного текста, затем используйте это, чтобы найти дескриптор – JosephH