В приложении WPF для C# я пытаюсь щелкнуть переключатель на экране удаления для приложения с кликом после приложения.Нажмите кнопку «Радио» из Win32 SendMessage
Есть 2 кнопки радио
- "Восстановить приложение в предыдущее состояние." (по умолчанию этот флажок установлен )
- «Удалите приложение с этого компьютера». (это один, который я хочу проверить).
Используя некоторые API Win32, я нахожу дескриптор переключателя и затем его нажимаю. К сожалению, ничего не происходит (переключатель не проверяется). На боковой ноте в этом окне есть кнопка «ОК», которую я успешно нажал.
Я использовал Spy ++, чтобы проверить, какие сообщения передаются, когда я вручную нажимаю переключатель и сравниваю их с сообщениями, которые я отправляю по коду (оба одинаковы).
Spy ++ сообщение Я посылаю из кода
<00001> 000D1136 S BM_SETCHECK fCheck:BST_CHECKED
<00002> 000D1136 R BM_SETCHECK
Шпионских сообщений ++ посланных, когда я нажимаю на кнопку радио с помощью мыши
<00099> 000D1136 S BM_SETCHECK fCheck:BST_CHECKED
<00100> 000D1136 R BM_SETCHECK
Ниже приведен фрагмент кода, я использую, чтобы нажать на радио кнопка.
[DllImport("User32.Dll")]
private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, int wParam, IntPtr lParam);
private const int BST_CHECKED = 0x0001;
private const int BM_SETCHECK = 0x00F1;
public static void DoRadioButtonClick(IntPtr RadioButtonHandle)
{
SendMessage(RadioButtonHandle, BM_SETCHECK, BST_CHECKED, IntPtr.Zero);
}
Несколько вопросов: с каким технологическим приложением вы хотите создать _automate_? Например, приложение WinForms не будет реагировать на BM_SETCHECK для радиокнопок. 2-й пункт: Думаю, вы не используете кнопку _click_ OK, используя BM_SETCHECK. 3-я точка: вы также можете имитировать клавиатуру с помощью SendKeys() ... –
Я использую приложение WPF, однако я не уверен, что окно с включенным переключателем является приложением WPF (это часть клика один раз). Кнопка ok нажата с помощью SendMessage (ButtonHandle, BM_CLICK, IntPtr.Zero, IntPtr.Zero). Не уверен, как я буду использовать SendKeys, поскольку переключатель не имеет фокуса. – Scott
Использование автоматизации пользовательского интерфейса для автоматизации пользовательского интерфейса –