powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проблема с нажатием кнопки в приложении стороннего разработчика
2 сообщений из 2, страница 1 из 1
Проблема с нажатием кнопки в приложении стороннего разработчика
    #38054087
Kottik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Есть некоторое приложение с панелью инструментов, на панели всего одна кнопка. Панель нестандартная. Кнопка не имеет сочетания горячих клавиш, и приложение не позволяет настроить. Не знаю как достучаться до небес до данной кнопки (кнопка ли это?) и выполнить её нажатие.



Никогда не работал с WinAPI, но чтобы показать вам, что я не безнадежен, публикую пример, который успешно применил.
Что было импортировано:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
  
//использую для поиска окна      
[DllImport("USER32.DLL", CharSet = CharSet.Unicode)]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

//использую для переключения в окно (окно разворачивается, если свернуто, и становится активным)
[DllImport("USER32.DLL")]
public static extern bool SwitchToThisWindow(IntPtr hWnd, bool Restore);


//для передачи нажатия 
[DllImport("user32.dll", CharSet=CharSet.Auto)]
public static extern int SendMessage(int hWnd, int msg, int wParam, IntPtr lParam);


В данном примере нахожу своё окно, передаю сочетание Ctrl+O, в диалоговом окне "Введите имя файла" нажимаю кнопку "Отмена".
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
IntPtr handle = = FindWindow("TApplication", "Текст заголовка");
SwitchToThisWindow(handle, true);
SetForegroundWindow(handle);

InputSimulator.SimulateModifiedKeyStroke(VirtualKeyCode.CONTROL, VirtualKeyCode.VK_O);
Thread.Sleep(2000);

handle = FindWindow("#32770", "Введите имя файла");
IntPtr hwndChild = FindWindowEx((IntPtr)handle, IntPtr.Zero, "Button", "Отмена");
Thread.Sleep(2000);

SendMessage((int)hwndChild, BN_CLICKED, 0, IntPtr.Zero);
...
Рейтинг: 0 / 0
Проблема с нажатием кнопки в приложении стороннего разработчика
    #38054233
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kottik,

моск сбоит от таких интерфейсов
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проблема с нажатием кнопки в приложении стороннего разработчика
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]