Что нового

Автоустановка программы.Блокировка движения мыши

puz27

Новичок
Сообщения
7
Репутация
0
Здравствуйте!!!
Ребята помогите разобраться...Заранее спасибо.
В общем суть такова...
Есть установщик программы...Необходимо установить его автоматом...В общем в процессе установки нужно нажать только одну кнопку... Скрипт написал, кнопка нажимается...все ок.(ну тут примитивно)
Использовал
Код:
MouseClick

Проблема в том,что при установке программы, если пользователь активен,то он двигает мышкой, ну и соответсвенно может сбить установку.Вопрос...Возможно ли как то заблокировать движение мыши или как в таком случае делают знающие люди для реализации автоустановщика?
СПАСИБО!!!
 
Автор
P

puz27

Новичок
Сообщения
7
Репутация
0
Код:
ControlClick()


ВидеK и такие решения, но в чем отличиие от
Код:
MouseClick


Спасибо....Щас попробую....
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 552
Репутация
2 429
InnI [?]
Курсор мыши не перемещается.
Не только в этом.
Насколько мне известно, MouseClick имитирует нажатие кнопки мышки, а ControlClick посылает сообщение WM_COMMAND родительскому окну.
 
Автор
P

puz27

Новичок
Сообщения
7
Репутация
0
Спасибо...Завтра на работе попробую...отпишусь...


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

Здравствуйте... Не могу разобраться...
Посмотрел :
Код:
ControlClick ( "title", "text", controlID [, button [, clicks [, x [, y ]]]] )


Правильно ли я понимаю, что если скрипт будет выглядеть как
Код:
Run('PROG.exe')
WinWaitActive("Инсталлятор рабочего места ","Требуется задать пар") 
ControlClick ("Инсталлятор рабочего места ","Требуется задать пар", 1181456)


Ничего не выйдет.
Читаю справку, везде обязательно добавляются дополнительные переменные.Вот я и не могу понять...
Спасибо!


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

Вот как я понял так уже более правильно быть должно... но все равно не нажимает...
Код:
Run('PROG.exe')

    If WinWaitActive("[TITLE:Инсталлятор рабочего места]", "", 5) Then
    _WinWaitActivate("Инсталлятор рабочего места кассира","Требуется задать пар")
    ControlClick("Инсталлятор рабочего места ","Требуется задать пар",'Далее >','btnNext')
      EndIf


Func _WinWaitActivate($title,$text,$timeout=0)
    WinWait($title,$text,$timeout)
    If Not WinActive($title,$text) Then WinActivate($title,$text)
    WinWaitActive($title,$text,$timeout)
EndFunc
 

InnI

AutoIT Гуру
Сообщения
4 483
Репутация
1 216
puz27
Запустите Au3Info, перетащите мишень на кнопку и покажите информацию с вкладки Summary.
 
Автор
P

puz27

Новичок
Сообщения
7
Репутация
0
Код:
>>>> Window <<<<
Title:	Инсталлятор рабочего места 
Class:	WindowsForms10.Window.8.app.0.378734a
Position:	175, 175
Size:	616, 521
Style:	0x16CA0000
ExStyle:	0x00050100
Handle:	0x00210972

>>>> Control <<<<
Class:	WindowsForms10.BUTTON.app.0.378734a
Instance:	13
ClassnameNN:	WindowsForms10.BUTTON.app.0.378734a13
Name:	btnNext
Advanced (Class):	[NAME:btnNext]
ID:	1901828
Text:	Далее >
Position:	442, 457
Size:	75, 23
ControlClick Coords:	64, 16
Style:	0x5601000B
ExStyle:	0x00000000
Handle:	0x001D0504

>>>> Mouse <<<<
Position:	506, 473
Cursor ID:	0
Color:	0xD4D4D4

>>>> StatusBar <<<<

>>>> ToolsBar <<<<
...
 

InnI

AutoIT Гуру
Сообщения
4 483
Репутация
1 216
Код:
Run("PROG.exe")
WinWait("Инсталлятор рабочего места")
Sleep(100)
ControlClick("Инсталлятор рабочего места", "", "[NAME:btnNext]")
 
Автор
P

puz27

Новичок
Сообщения
7
Репутация
0
Да!Спасибо!Еще немного подправил и все запустилось...
Спасибо...
Но вот беда... если во время установки программы я что то делаю то (происходят движения мышью), то установка не происходит..
Как и в первом случае...

Тут написали использовать
Код:
BlockInput()

Но в справке написано что данная директива не влияет на
Код:
MouseMove

Соответственно, мышь двигается и установка не заканчивается...
 

InnI

AutoIT Гуру
Сообщения
4 483
Репутация
1 216
puz27 [?]
данная директива не влияет на
Верно. Скрипт может двигать мышь, а пользователь - нет. И для функции BlockInput() нужны права администратора.

мышь двигается и установка не заканчивается
Я не пойму - вы перешли на ControlClick() или нет? Если перешли, то мышь вам не помеха и проблема где-то в другом месте. Например, в ожидании активности окна.
 
Автор
P

puz27

Новичок
Сообщения
7
Репутация
0
Спасибо...
Да, я перешел на
Код:
ControlClick

Щас буду смотреть...
Код:
BlockInput(1)
Run("PROG.exe")
WinWait("Инсталлятор рабочего места ","Требуется задать пар")
Sleep(100)
ControlClick("Инсталлятор рабочего места ", "Требуется задать пар", "[NAME:btnNext]")
WinWait("Инсталлятор рабочего места кассира","Завершение установки")
Sleep(1000)
ControlClick("Инсталлятор рабочего места кассира", "Завершение установки", "[NAME:btnFinish]")
BlockInput(0)
 

InnI

AutoIT Гуру
Сообщения
4 483
Репутация
1 216
На Win7 и выше при включённом UAC, возможно, потребуется
Код:
#RequireAdmin
 
Автор
P

puz27

Новичок
Сообщения
7
Репутация
0
InnI, спасибо...
Попробовал.. Установка полностью блокируется...В принципе подходит)))Щас еще потестю, отпишусь...
Спасибо!


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

ДАА!!
Все заработало!!!
Спасибо!Щас буду разворачивать!Ура!Спасибо всем!!! :laugh:
 
Верх