| 
| 
 | Вопрос # 3 860/ вопрос открыт / | 
 |  1) Доброго времени суток, уважаемые эксперты!
 Можно ли с помощью делфи/Си управлять положением курсора мышки и вызывать события клика левой и правой кнопки.
 
 Если все таки можно, то будьте добры приведите пример таких функций.
 
 2) можно ли это реализовать в консольном режиме?
 
 3) если приложение написано в консольном режиме как сделать так чтобы можно было передавать ему параметры вызывая в командной строке windows/linux (Например: ping x.x.x.x, где x.x.x.x параметр а ping вызываемое приложение)
 
|  |   Вопрос задал: BAHbOK (статус: Посетитель)Вопрос отправлен: 7 марта 2010, 23:11
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 8; последнее сообщение — 8 марта 2010, 18:22; участников в обсуждении: 4. 
|   | dimedrol.tab (статус: Посетитель), 7 марта 2010, 23:27 [#1]:В Linux не знаю. В Windows позиция курсора задается функцией API: SetCursorPos(x,y);
 Параметры командной строки в Delphi достаются при помощи
 ParamStr(num); // где num - номер параметра; нулевой параметр - путь к самому исполняемому файлу
 В C/C++ число параметров лежит в переменной argc, а указатели на сами параметры - в массиве argv[].
 argc и argv - аргументы функции main().
 |  
|   | BAHbOK (статус: Посетитель), 7 марта 2010, 23:42 [#2]:Спасибо, большое. Осталось теперь разобраться как вызвать событие нажатия кнопок - или другими словами имитировать нажатие |  
|   | dimedrol.tab (статус: Посетитель), 7 марта 2010, 23:58 [#3]:Ах да, еще же про клики.  Насколько я знаю, просто так сделать клик в определенную точку экрана нельзя. Клик делается по какой-то точке окна(рабочий стол - тоже окно, но клик по нему в той точке, в которой находится другое окно, приведет к клику по рабочему столу под ним). Итак:
 HWND hWnd = FindWindow(WindowClass, WindowTitle);
 SendMessage(hWnd, WM_LBUTTONDOWN, x, y);
 SendMessage(hWnd, WM_LBUTTONUP, 0, 0);
 где
 WindowClass - класс окна, по которому будет произведен клик ( если не знаем, пишем NULL )
 WindowTitle - заголовок окна
 x, y - координаты клика.
 Вы уж простите, что не на дельфи, а на си. Я его не знаю совсем, а что знал, то уже не помню
  Надеюсь, перевести сможете.   |  
|   | Ерёмин А.А. (статус: *Администратор), 8 марта 2010, 00:03 [#4]: Цитата (BAHbOK): Осталось теперь разобраться как вызвать событие нажатия кнопок mouse_event()
 |  
|   | dimedrol.tab (статус: Посетитель), 8 марта 2010, 00:13 [#5]:Даже больше скажу: если нужен клик именно по кнопке в оконном приложении, то, чтобы не отслеживать ее координаты, можно найти сначала окно так, как сказано в предыдущем моем посте, потом найти кнопку так: HWND hButton = FindWindowEx(hWnd, NULL, "button", ButtonCaption);
 затем идентификатор ее меню:
 HMENU hBtnMenu = GetMenu(hButton);
 и наконец послать окну сообщение WM_COMMAND с первым параметром, равным этому самому идентификатору меню:
 SendMessage(hWnd, WM_COMMAND, hBtnMenu, 0);
 Успехов.
 |  
|   | min@y™ (статус: Доктор наук), 8 марта 2010, 11:51 [#6]:Вопрос задан неверно. Надо так:
 1) у меня есть програма X;
 2) хочу по ней водить мышкой и тыкать;
 3) прога консольная;
 4) как это сделать в Windows и Linux;
 5) это программа - cmd/bash, как в ней пинговать сервера из моей проги?
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | dimedrol.tab (статус: Посетитель), 8 марта 2010, 18:12 [#7]:min@y™: мне думается, что ему не нужно ничего пинговать, а только получить параметры командной строки. Просто он упомянул про ping в качестве примера, он ведь достает адрес и опции из параметров =) |  
|   | min@y™ (статус: Доктор наук), 8 марта 2010, 18:22 [#8]:Тогда колись давай: чо за прогу пишешь и для чего. Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |