PDA

Показать полную графическую версию : [Архив - Часть 1.1] AutoIt скрипты


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [17]

__Koval__
31-01-2006, 14:13
Sanja Alone
или так (сам я этот метод не проверял).
За то я проверил, все отлично работает. Огромное спасибо.



А можно ли как нибудь по ярлыкам кликать, не используя метод координат?

godoo
31-01-2006, 14:44
__Koval__
Попробуй ALT и стрелки. Например у меня так отлично работает:
Send ( '{ALT}' & '{RIGHT}' & '{RIGHT}' & '{RIGHT}' & '{RIGHT}' & '{UP}' & '{ENTER}' & '^+{TAB}' ) - до нужной закладки в меню, а потом ControlClick-ами

Sanja Alone
Огромное спасибо всё получилось!

__Koval__
31-01-2006, 16:32
godoo
так ведь не всегда известно точное положение ярлыка вот в чем фишка.

elakt
01-02-2006, 10:10
Sanja Alone
Меня не это озадачило. Зачем тебе писать текст в Блокноте при пом. АвтоИта, если можно просто вывести сообщение?
Блокнот был призван ПРОИЛЛЮСТРИРОВАТЬ проблему, которая возникла в другой программе и не более того :-)

Sanja Alone
Да, если так была написана та программа.
Ценное замечание. Делаю вывод, что не все программы ведут себя подобным образом.

Спасибо Sanja Alone!

Aspirine
01-02-2006, 16:42
Пдскажите, можно ли написать такой скрипт, чтобы во время установки программ блокировал клаву, и мог разблокировать только по паролю, или горячим клавишам. А то поставишь сразу нескольким юзверям ставить софт, а они все лезут что-то менять, трогать т.д.

Sanja Alone
01-02-2006, 23:01
Matroskin13
иногда срабатывает, иногда останавливается
Очевидно, что Send("{TAB}") иногда просто не успевает перейти к след. эл-ту управления. Решений два:

Увеличить задержку Opt("SendKeyDelay", x) - значение x по ум. равно 5 мс. Поставь, например 20;
Вместо Send()-ов исп-ть ControlSetText ( "title", "text", controlID, "new text" ).



__Koval__
А можно ли как нибудь по ярлыкам кликатьХоть в этом и нет особого смысла (т.к. ярлык - это ссылка с картинкой), но можно так:
;каталог с ярлыком
$dir=@DesktopDir&'\'
;имя ярлыка
$lnk='VMware Workstation'
Run(@ComSpec & ' /c start ' & FileGetShortName($dir&$lnk&'.lnk'))А чем тебе не подходит обычный запуск проги с указанием пути Run('путь\прога.exe')?


Aspirine
Пдскажите, можно ли написать такой скрипт, чтобы во время установки программ блокировал клавуBlockInput(1)
и мог разблокировать только по паролю, или горячим клавишамИ как ты себе это представляешь при заблокированном вводе :) Снятие блокировки - BlockInput(0)

Aspirine
02-02-2006, 14:38
Sanja Alone
И как ты себе это представляешь при заблокированном вводеСнятие блокировки - BlockInput(0)
Виноват, ступил. А мышка блокирутся при BlockInput(1)?
Может можно сдеалть, что бы снималась блокировка после определённого, последовательного нажатия епо кнопкм мыши.

bogomolv
02-02-2006, 20:10
Молодежь! :)
Вы не перепутали эту ветку с горячей линией службы поддержки? Вынь-да-положь им решение!
Я о "А мышка блокирутся при BlockInput(1)?" и пр.
А слабо проверить? Это займет меньше времени, чем написание поста!

All
Страсть, как хочется похвалиться! :)
Часто нужный параметр прячется в реестре по "адресу", содержащему ID железки или пользователя, ключ безопасности и пр. Для таких случаев в AutoIt есть оператор RegEnumKey(). Однако при этом нужно выстраивать циклы, делать проверки и т.д.
Нашел красивое решение подбной задачи, когда мне нужно на стадии CMDLINES узнать будущее разрешение экрана устанавливаемой Windows.
If RunWait('@ComSpec@ /C reg query "HKLM\SYSTEM\CurrentControlSet\Control\DeviceClasses" /s | find "DefaultSettings.XResolution" | find "500"','',0)=0 Then $screen=1280
ElseIf RunWait('@ComSpec@ /C reg query "HKLM\SYSTEM\CurrentControlSet\Control\DeviceClasses" /s | find "DefaultSettings.XResolution" | find "400"','',0)=0 Then $screen=1024
Else
$screen=800
EndIf

Cherepan
03-02-2006, 01:11
Прастите чайника :sorry: (тем более, что не в тему - ну не нашел я тему :-) )

Нада вставить путь из переменной "$path") в поле Edit
Делаю примерно так:

ControlFocus ( "title", "text", "Edit")
ControlSend ( "title", "text", "Edit", $path)


В результате в поле вставляется какая-то лабуда типа "C:\Ё ЁigЁiЁ FiЁEs\ЁiЁi ЁiFTWAE\ЁEEFAЁ Ё ЁiFEЁiЁEAL" :blink:

VelDmi
03-02-2006, 06:56
Cherepan
Такая лабуда обычно получается, если включена не та раскладка клавиатуры. Например в винде стоит русский, а писать пытаешься по английски.

Cherepan
03-02-2006, 17:07
VelDmi
Ага... Нада попробовать. Пасиба.
Сразу выскакивает другой ворос - как определить, какими кнопками переключает юзер раскладку?
Или как сменить раскладку средствами AutoIt?

Sanja Alone
04-02-2006, 02:30
Cherepan
Сразу выскакивает другой ворос - как определить, какими кнопками переключает юзер раскладку?
Или как сменить раскладку средствами AutoIt?Посмотри это (http://forum.oszone.net/showpost.php?p=375113&postcount=235) и это (http://forum.oszone.net/showpost.php?p=394768&postcount=305) сообщения.

Cherepan
04-02-2006, 12:04
Sanja Alone
Пасибки, работает.
VelDmi
После переключения раскладки еще интересней:
C^\~ ~ig~i~ Fi~Es\~i~i ~iFTWAE\~EEFA~ ~ ~iFE~i~EAL

Send() не хочет нормально работать с латиницей в любой раскладке. С кириллицей проблем нет.

Scratch56
04-02-2006, 14:30
Cherepan А случаем не в Виртуальном писюке Send() делаешь? У меня такое в Виртуальном, а в обычном - нормально.

Cherepan
04-02-2006, 14:44
Scratch56
Не, в винде XP SP2 RUS

Cherepan
04-02-2006, 16:58
Еще одна интересная особенность - этот глюк не во всех окнах. В некторых все прокатывает на ура.




© OSzone.net 2001-2012