Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Автоматизация нажатия клавиш

Ответить
Настройки темы
Автоматизация нажатия клавиш

Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 177


Конфигурация

Профиль | Отправить PM | Цитировать


Здравствуйте.
Есть некоторая программа GateLocal. Приходится через некоторое время проводить в ней несложные однообразные манипуляции мышкой и ввод с клавиатуры. Есть необходимость автоматизировать данный процесс. Поддержки консольных команд у этой программы нет (информация от разработчиков). Попробовал воспользоваться программой autohotkey. В принципе интересная софтина, но почему-то ввод логина она обработать не может. В логах пишет что произошла ошибка (какая именно не пишет). Вот хотелось бы узнать может кто-то сталкивался с этим? Или может посоветуете другую программу?

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.


Отправлено: 18:09, 22-01-2011

 

Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 177

Профиль | Отправить PM | Цитировать


Цитата madmasles:
дайте ссылку на эту программу и напишите подробно, что нужно делать (какие кнопки нажимать, какие данные вводить, и т.д). »
http://www.skd-gate.ru/index.php?nomer=93

Это программа, которая обслуживает контроллер магнитных ключей. У сотрудников компании есть магнитные карты и при прохождении проходной данные попадают в контроллер. Он запоминает порядка 4000 событий и через каждые пару дней приходится из контроллера скачивать инфу на компьютер.

Теперь о кнопках которые нужно нажимать:
Сначала нужно ввести имя пользователя и пароль..... в этом месте как раз и затык. И та прога, которой я изначально пытался пользоваться и vbs не помогают. Возможно там какая-то защита стоит от эмуляции нажатия клавиш.

Этот кусок кода у меня не работает.... точнее ничего не печатает

Код: Выделить весь код
Set WshShell = CreateObject("WScript.Shell") 
RetCode = WshShell.Run("notepad", 1) 
WshShell.SendKeys "A"

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.


Отправлено: 14:40, 24-01-2011 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 177

Профиль | Отправить PM | Цитировать


Вобщем разобрался. Косяк был в паузах - программа не всегда отрабатывала. Написал скриптик. Попробую как он будет запускаться по расписанию.
Код: Выделить весь код
Set WshShell = CreateObject("WScript.Shell")
RetCode = WshShell.Run("GateLocal.exe", 1)
WScript.Sleep 3000
WshShell.SendKeys "+(^)"
WshShell.SendKeys "Yfcnz"
WshShell.SendKeys "{ENTER}"
WScript.Sleep 1000
WshShell.SendKeys "{ENTER}"
WScript.Sleep 1000
'
'Изменяем на "Постоянно открыто"
WshShell.SendKeys "{DOWN}"
WScript.Sleep 1000
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WScript.Sleep 1000
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "{ENTER}"
'
'Качаем события
WScript.Sleep 1000
WshShell.SendKeys "{TAB}"
WScript.Sleep 1000
WshShell.SendKeys "{ENTER}"
WScript.Sleep 1000
WshShell.SendKeys "{ }"
WScript.Sleep 1000
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "{ENTER}"
WScript.Sleep 4000
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "{ESC}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{ENTER}"
'
'Изменяем на "Постоянно закрыто"
WshShell.SendKeys "{DOWN}"
WScript.Sleep 1000
WshShell.SendKeys "{TAB}"
WScript.Sleep 1000
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "{ENTER}"
'
'Выходим
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "{ENTER}"

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.


Отправлено: 15:29, 24-01-2011 | #12


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


Tonny_Bennet,
Скачал ее по Вашей ссылке, установил, но запускаться она не хочет, требует Hasp ключ (или что-то типа того).
Попробуем помочь Вам по другому.
1. Вам надо скачать и установить AutoIt v3.3.6.1.
2. Как уже писал kaster:
Цитата kaster:
есть такая замечательная штука - AutoIt Window Info, которая идет в комплекте с AutoIt. с помощью нее можешь узнать всю необходимую информацию о нужных тебе элементах управления нужного тебе окна. »
3. Найдите файл, который запускает Ваше окно. Откройте окно. С помощью AutoIt Window Info посмотрите на вкладке Summary, как называются поля, куда Вам над ввести логин и пароль и кнопки, на которые надо будет нажимать.
4. Дальше примерно так:
Код: Выделить весь код
$sTitle = 'Заголовок Вашего окна'
$sLogin = 'Ваш логин.'
$sPass = 'Ваш пароль'
$sFile = @ProgramFilesDir & '\GATELocal\Local.exe' ;полный путь к файлу, который открывает окно
;у Вас он может быть другой, я написал для примера.
;@ProgramFilesDir - макрос, путь к папке Program Files
Run($sFile) ;запускаем файл, который должен открыть окно
$hWindow = WinWait($sTitle, '', 5) ;ждем появления окна с заголовком $sTitle и любым текстом 5 секунд
If Not $hWindow Then ;если не дождались окна ($hWindow = 0)
    MsgBox(16, 'Ошибка', 'Нет такого окна')
    Exit ;заканчиваем работу.
EndIf
;если окно дождались, то $hWindow это идентификатор (Handle) этого окна.
ControlSetText($hWindow, '', 'Edit1', $sLogin)
;вставляем логин в поле Edit1. У Вас оно может быть другое.
;Его надо узнать с помощью AutoIt Window Info.
ControlSetText($hWindow, '', 'Edit2', $sPass)
;вставляем пароль в поле Edit2. См. комментарий выше
ControlClick($hWindow, '', 'Button1')
;кликаем по кнопке Button1.См. комментарий выше
5. Если Вы правильно определили поля ввода и кнопки и у окна нет какой-либо защиты, то все должно работать. Если кликать надо еще по другим кнопкам, то образец, как это сделать, у Вас есть.
Удачи.
ИМХО, с помощью AutoIt это все сделать можно проще и надежнее.

Если Вы все же решите делать это с помощью VBS, то Вам лучше задавать вопросы в соответствующей ветке форума Скриптовые языки администрирования Windows.

Последний раз редактировалось madmasles, 24-01-2011 в 15:54.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:47, 24-01-2011 | #13


Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 177

Профиль | Отправить PM | Цитировать


Я понял спасибо за помощь, будем ковыряться

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.


Отправлено: 16:16, 24-01-2011 | #14


Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 177

Профиль | Отправить PM | Цитировать


По расписанию скрипт не запускается. Точнее приложение запускается но не отрабатывает. Т.е. я так думаю, что для эмуляции нажатия клавиш нужно быть влогиненным в с системе. Скажите пожалуйста с AutoIt дела обстоят также?

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.


Отправлено: 11:56, 25-01-2011 | #15


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


здраствуйте я тож решил написать "установщик" но пробую в первый раз и конечно появляются проблемы)) ну вот я прочитал вашу беседу и попробовал по премеру Tonny_Bennet)) ну я сохранил скрипт в vbs. и при открытии мне выдают:
Требуется обиект:"WshShell"(( что это за обиект ведь я указал обьект? помогите please!!)вот скрипт:



Set WhShell = CreateObject("WScript.Shell")
RetCode = WshShell.Run("ranger.exe")
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "{DOWN}"
WshShell.SendKeys "{ENTER}"

Отправлено: 15:43, 27-01-2011 | #16


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


jiorik,
Это раздел, посвященный AutoIt.
Цитата:
Вам лучше задавать вопросы в соответствующей ветке форума Скриптовые языки администрирования Windows

Отправлено: 15:56, 27-01-2011 | #17


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


ну здесь тож рашают пробдемы со скриптами)) у меня ведь такой маленкий вопросик))там пока ищу подходящюю тему))ну спс и за отзыв!

Отправлено: 19:11, 27-01-2011 | #18

MKN MKN вне форума

Ветеран


Сообщения: 2355
Благодарности: 557

Профиль | Отправить PM | Цитировать


Цитата madmasles:
А какое отношение это имеет к теме AutoIt? »
Логичнее было бы заявленный вопрос об Автоматизация нажатия клавиш поместить в общую тему Программирование и автоматизация действий, а не конкретно в AutoIt. Для AutoIt, автонажатие клавиш, всего лишь частность из всех её обширных возможностей. Да и Скриптовые языки администрирования Windows тоже касаются этого постольку-поскольку...

Автоматизация нажатия клавиш - это совершенно отдельная тема (и оч. многих интересующая), хотя инструменты реализации могут быть очень разнообразными. И неплохо бы было собрать их все в одном месте , а не распыляться по куче разных тем... ИМХО

ps Собственно и сама эта тема "Автоматизация нажатия клавиш" , изначально была заявлена в другом месте, а сюда перенесена.
И похоже, что опять ошибочно...

Последний раз редактировалось MKN, 29-01-2011 в 14:54.


Отправлено: 14:47, 29-01-2011 | #19



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Автоматизация нажатия клавиш

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Эмуляции нажатия клавиш в неактивном окне ZARG-X AutoIt 22 31-01-2011 09:37
[решено] эмуляция нажатия клавиш с помощью Autoit lekivanv AutoIt 5 18-11-2010 02:35
Вирус имитирующий нажатия клавиш и другие проблемы с компом skit99 Лечение систем от вредоносных программ 12 01-02-2010 09:34
[решено] Автоматизация нажатия кнопок в окне браузера в фоновом режиме(?) zbruy AutoIt 9 04-10-2009 12:22
Двойные нажатия клавиш ivank Железо в Linux 8 09-06-2003 09:24




 
Переход