Что нового

Помогите с Controlsend, почему то не работает!

lexaSF

Новичок
Сообщения
182
Репутация
3
Что тут не так?почему ControlSend не пашет вообще?Я что-то опять неправильно написал :-\
Код:
$ExeFile = 'C:\Users\Lexa\Desktop\UDOBot_v.4.0.0\UDOBot_v.4.0.0\UDOBot.exe'
$d = 'C:\Users\Lexa\Desktop\UDOBot_v.4.0.0\UDOBot_v.4.0.0'
Run($ExeFile, $d, @SW_MINIMIZE)
WinWait("UDOBot v.4.0.0","Start")
$GHandl = WinGetHandle('UDOBot v.4.0.0','Start')
ControlSend('UDOBot v.4.0.0','Start',$GHandl,'{TAB 3}') ; Ничего не делается
ControlSend('UDOBot v.4.0.0','Start',$GHandl,'{ENTER}') ; Здесь тоже
MsgBox(0,'','vse ok' & $GHandl)
$Handl = WinGetHandle('UDOBot v.4.0.0','File')
MsgBox(0,'','vse ok' & $Handl)
ControlSend('UDOBot v.4.0.0','Settings',$Handl,'{ALT}')  ;
ControlSend('UDOBot v.4.0.0','Settings',$Handl,'{ENTER}') ;
ControlSend('UDOBot v.4.0.0','Settings',$Handl,'{DOWN 1}') ;
ControlSend('UDOBot v.4.0.0','Settings',$Handl,'{ENTER}') ;
ControlSend('UDOBot v.4.0.0','Settings',$Handl,'{DOWN 1}') ;
ControlSend('UDOBot v.4.0.0','Settings',$Handl,'{ENTER}') ; Ни один не посылается
MsgBox(0,'','vse ok' & $Handl)
WinWait("Load Settings","Select the Setting you wish to")
ControlClick("Load Settings","Select the Setting you wish to","WindowsForms10.COMBOBOX.app.0.33c0d9d1")
ControlClick("Load Settings","Select the Setting you wish to","WindowsForms10.BUTTON.app.0.33c0d9d2")
 

Heler

Знающий
Сообщения
70
Репутация
11
Возможно проблема в том, что Вы 'UDOBot v.4.0.0' запускаете с повышенными правами, а скрипт с обычными. ;)
 
Автор
L

lexaSF

Новичок
Сообщения
182
Репутация
3
Heler сказал(а):
Возможно проблема в том, что Вы 'UDOBot v.4.0.0' запускаете с повышенными правами, а скрипт с обычными. ;)
:shok: всмысле типа удо через админку а скрипт нет?
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,716
{LangWarn.SModer}
 

Heler

Знающий
Сообщения
70
Репутация
11
Копипаст с microsoft сайта:
При входе в систему Windows создает маркер, который используется для определения уровня прав доступа к учетной записи. Учетные записи обычного пользователя получают обычный маркер, учетные записи администратора получают два маркера: маркер доступа обычного пользователя и маркер доступа администратора. Обычный маркер используется для открытия «Explorer.exe» (оболочка Windows) из которого запускаются все последующие программы. Дочерние процессы наследуют маркер запускающего их процесса. Поэтому, по умолчанию все программы запускаются от лица обычного пользователя —даже при входе в систему с учетной записью администратора. Некоторые программы требуют повышения уровня доступа до прав администратора. Именно тогда отображается запрос контроля учетных записей. При предоставлении учетных данных администратора, Windows открывает программу с использованием маркера доступа администратора.

Так вот 'UDOBot v.4.0.0' возможно потребовала повышения уровня доступа до прав администратора, а Ваш скрипт нет. Попробуйте вверху добавить:

Код:
#RequireAdmin
 
Автор
L

lexaSF

Новичок
Сообщения
182
Репутация
3
Работает, но не всегда, иногда на 3 раз..Чтоо такое(


Добавлено:
Сообщение автоматически объединено:

Кажется, разобрался.Он вместо указанных 3 нажатий {TAB 3} посылает 2.странно, вот кусок кода
Код:
$GHandl = WinGetHandle('UDOBot v.4.0.0','Start')
ControlSend('UDOBot v.4.0.0','Start',$GHandl,'{TAB 3}') ; посылает 2

ВРоде все верно указано, с 4 работает..
 
Автор
L

lexaSF

Новичок
Сообщения
182
Репутация
3
Все, терь я точно зашел в тупик))
Вот так работает
Код:
Sleep(3000)
$t = WinGetHandle('UDOBot v.4.0.1','Прочка:')
ControlSend('UDOBot v.4.0.1','Прочка:',$t,'{ALT}')
ControlSend('UDOBot v.4.0.1','Прочка:',$t,'{DOWN 2}')
ControlSend('UDOBot v.4.0.1','Прочка:',$t,'{ENTER}')
ControlSend('UDOBot v.4.0.1','Прочка:',$t,'{DOWN}')
ControlSend('UDOBot v.4.0.1','Прочка:',$t,'{ENTER}')
WinWait('Загрузка настроек',"Выберите загружаемые настройки:")
ControlClick("Загрузка настроек","Выберите загружаемые настройки:","WindowsForms10.COMBOBOX.app.0.33c0d9d1")
WinSetState('UDOBot v.4.0.1','Прочка:',@SW_MINIMIZE)

А вместе с другой частью скрипта уже нет.
Код:
Sleep(1000)
$ExeFile = 'C:\Users\Lexa\Desktop\UDOBot_v.4.0.1_RUS_bez_reklamy\UDOBot.exe'
$d = 'C:\Users\Lexa\Desktop\UDOBot_v.4.0.1_RUS_bez_reklamy'
Run($ExeFile, $d, @SW_MINIMIZE)
WinWait("UDOBot v.4.0.1","Текущая карта:")
$GHandl = WinGetHandle('UDOBot v.4.0.1','Session ID:')
ControlSend('UDOBot v.4.0.1','Текущая карта:',$GHandl,'{TAB 4}')
ControlSend('UDOBot v.4.0.1','Текущая карта:',$GHandl,'{ENTER}')
MsgBox(0,'','vse ok' & $GHandl)
WinWait('UDOBot v.4.0.1','Прочка:')
MsgBox(0,'','vse ok' & $GHandl)
Sleep(3100)
Local $Title = WinGetHandle('UDOBot v.4.0.1','Прочка:')
MsgBox(0,'',@error)
ControlSend('UDOBot v.4.0.1','Прочка:',$title,'{ALT}')
ControlSend('UDOBot v.4.0.1','Прочка:',$title,'{DOWN 2}')
Sleep(1100)
ControlSend('UDOBot v.4.0.1','Прочка:',$title,'{ENTER}')
Sleep(1100)
ControlSend('UDOBot v.4.0.1','Прочка:',$title,'{DOWN}')
Sleep(1100)
ControlSend('UDOBot v.4.0.1','Прочка:',$title,'{ENTER}')
Sleep(1100)
MsgBox(0,'','vse ok' & $GHandl)
WinWait('Load Settings',"Select the Setting you wish to")
ControlClick("Load Settings","Select the Setting you wish to","WindowsForms10.COMBOBOX.app.0.33c0d9d1")
 
Автор
L

lexaSF

Новичок
Сообщения
182
Репутация
3
Попробовал сделать 2 отдельных скрипта, 1 включает бота, другой загружает, тоже самое!...
 

r35p3ct

Продвинутый
Сообщения
228
Репутация
60
Может лучше так? без $title, вместо него нужно указывать контрол, а если просто посылается в окно, то этот параметр не нужен.
Код:
ControlSend('UDOBot v.4.0.1','Прочка:','','{DOWN}')
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
622
OffTopic:
lexaSF
игнорирование требования модератора ни к чему хорошему (в контексте данного форума, конечно же) не приведет.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,665
Репутация
2,463
lexaSF
У ControlSend в третьем параметре должен быть CtrlID, а не указатель (Handle) окна.
Читай справку.
 
Верх