Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.80
pusnet
0 / 0 / 1
Регистрация: 12.01.2011
Сообщений: 1
#1

Управление другой программой - C++ Builder

16.01.2011, 03:01. Просмотров 2138. Ответов 1
Метки нет (Все метки)

Есть сторонняя программа, в окне которой размещены различные элементы, которыми нужно управлять.
Например ComboBox. Необходимо менять значения этих элементов управления, выбирать вариант из списка ComboBox.
Как это лучше сделать?
Есть вариант перемещением курсора и кликом на мышке (эмуляция)
но криво работает:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
double qqq (double tbprice)
{
ClickPos (50,30);
ClickPos (140,140);
ClickPos (141,155);
ClickPos(860,370);keybd_event(VK_UP, 0, 0, 0);
ClickPos (220,140);
keybd_event(VK_DOWN, 0, 0, 0);
Sleep(20);
keybd_event(VK_DOWN, 0, 0, 0);
ClickPos (220,180);
double qqq=11;
return qqq;
}
Функция клика
void ClickPos (int x, int y)
{
SetCursorPos(x,y);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); // нажали левую кнопку мыши
Sleep(30);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); // отпустили левую кнопку мыши ( НЕ ЗАБЫВАТЬ )
}
Можно ли управлять чужим окном, зная класс и имя элемента управления - ComboBox?
Как это сделать?
Если невозможно, то как правильно написать код, чтобы мышкой в комбобоксах выбирались значения, если допустить момент то, что расположение на окне известны?
http://www.cyberforum.ru/cpp-builder/thread318183.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2011, 03:01
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Управление другой программой (C++ Builder):

Управление другой программой через интерфейс пользователя
В общем есть проблема, а именно огромное время, кот тратится на одну онлайн...

Управление другой программой: после открытия программы, в дальнейшем Handle теряется
Если прога изначально работает, а потом мы ищем ее с помощью FindWindow, тогда...

Управление программой через интернет
Доброго времени суток. Есть два компа, оба подключены по wi-fi к одному...

Управление программой через командную строку
Доброго времени суток. Есть программа на с++ в Builder 6 взятая тут:...

Нажатие кнопки в окне открытой программы другой программой
Здравствуйте. Имею следующую задачу. Необходимо запустить внешнюю программу и...

1
MikeSoft
Эксперт С++
3917 / 1782 / 183
Регистрация: 21.11.2009
Сообщений: 2,540
16.01.2011, 13:14 #2
pusnet, вам необходимо выполнить поиск окна. В случае успешного завершения и существования окна вы получите необходимый дескриптор, используя который можно выполнить перебор дочерних элементов, а затем выполнить отправку сообщения.
Простенький пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
HWND hWnd = FindWindow(NULL, L"Form1");
if (hWnd) {
  hWnd = FindWindowEx(hWnd, NULL, L"TComboBox", NULL);
  if (hWnd) {
    PostMessage(hWnd,WM_LBUTTONDOWN,NULL,NULL);
    PostMessage(hWnd,WM_LBUTTONUP,NULL,NULL);
    Application->ProcessMessages();
    Sleep(350);
    PostMessage(hWnd,WM_KEYDOWN,VK_DOWN,1);
    PostMessage(hWnd,WM_KEYUP,VK_DOWN,1);
    Application->ProcessMessages();
    Sleep(350);
    PostMessage(hWnd,WM_KEYDOWN,VK_DOWN,1);
    PostMessage(hWnd,WM_KEYUP,VK_DOWN,1);
  }
}
4
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2011, 13:14
Привет! Вот еще темы с решениями:

Управление объектом динамического массива с другой формы
Есть форма на которой массив изображений. Обращаюсь к объекту с помощью :...

Управление объектом динамического массива с другой формы (this)
По нажатию кнопки на форме 2 , объект TImage на форме 1 должен поменять...

Управление размерами компонента формы с другой формы
Доброго дня. Подскажите, есть код, поставлен в событие TForm1::FormResize...

Программа управляющая другой программой....
Здраствуйте многоуважаемые форумчане, помогите мне пожалуйста одолеть такую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru