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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [архив - Часть 2] AutoIt скрипты

Закрытая тема
Настройки темы
[архив - Часть 2] AutoIt скрипты

(*.*)


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


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

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


Изменения
Автор: Vadikan
Дата: 27-01-2008
Внимание!
Тема переведена в архивное состояние







(настоятельно рекомендуется к прочтению/поиску)


Руководство к действию по работе c AutoIt.


Сайт программы
Русская справка
Коллекция AutoIt скриптов от Sanja Alone
Коллекция AutoIt скриптов от MSFN (могут быть устаревшие).
Справочник по командам rundll32 (команды запуска диалоговых окон и не только...)

AutoIt скрипты - введение и FAQ (статья содержит вводную информацию по AutoIt, а также ответы на ЧаВо).



Данная тема предназначена для общих вопросов по AutoIt. Вопросы по установке приложений при помощи AutoIt следует задавать в соответствии с правилами форума "Автоматическая установка приложений". Таким образом, если вы хотите узнать как установить Winamp 5.x при помощи AutoIt, то создайте тему [autoit] Winamp 5.х (если таковой еще нет на форуме). Проверить наличие тем можно при помощи поиска или фильтров.
Цитата Vadikan:
В теме уже свыше 500 сообщений и поиск нужной информации в ней усложняется. Есть предложение собрать все решения (скрипты) и разместить их на Wiki по принципу "один скрипт - одна статья wiki", добавляя статьи в категорию Autoit. Речь, в принципе, идет об общих решениях, а не о скриптах для установки конкретной программы. Название статьи, очевидно, должно отражать назначение скрипта. Затем можно в шапке просто разместить ссылки на статьи Wiki.

-------
Канал Windows 11, etc | Чат @winsiders

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

Отправлено: 00:02, 05-02-2006

 

Googler


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

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


Angelus
Цитата:
Я хочу просто открыть провадник в какойто папке »
вот пример:
Код: Выделить весь код
$sPathSelect = "C:\Windows\System32"
Run ("explorer.exe "&$sPathSelect, @SystemDir)
есть возможность даже выбрать папку/файл:
Код: Выделить весь код
$sPathSelect = "C:\Windows\System32"
Run ("explorer.exe /e, /select, "&$sPathSelect, @SystemDir)
FYI: Настройка параметров отображения проводника в Windows XP
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:59, 27-11-2007 | #781



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

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


Аватара для Creat0R

Must AutoIt


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

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


amel27,
Цитата:
хотя можно попытаться порулить политикой питания, на ентот счет есть свои API и, к примеру, менять эти настройки на время блокировки
О, это думаю будет проще/надёжнее, а как туда подрулить? , т.к пересмотрев страничку по ссылке что ты дал, я так и не понял как на AutoIt это дело перевести...

Цитата:
вот вариант для версии 3.2.8.1
Гинеально! Оно и вправду работает, спасибо!
Может на оф. форуме выложить, пусть поправят в оригинале?

Цитата:
обнаружил что, в 10-ке алгоритм более продуманный в плане производительности.
В UDF'ах? или сам движек AutoIt'а?

Angelus,
Цитата:
просто открыть провадник в какойто папке
Можно просто через ShellExecute(@SystemDir).

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

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

Отправлено: 17:22, 27-11-2007 | #782


Googler


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

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


Creat0R
Цитата:
а как туда подрулить? »
хм, у меня этот способ как-то странно работает... отключаются клавиши вроде сразу после применения политики, а вот включаться обратно не хотят - требуется перезагрузка компа... помучаю еще чуть
Цитата:
Может на оф. форуме выложить, пусть поправят в оригинале? »
да я не против, ткни куда выложить... только вот непонятно под какую версию делать UDF - новую или старую?... с другой стороны какой смысл править статус бар, если есть куча других несовместимых с иникодом GUI-функций?
Цитата:
В UDF'ах? или сам движек AutoIt'а? »
в старом UDF был единый алгоритм для "своих" и "чужих" окон, в новом варианте "свои" GUI-окна пустили по короткому алгоритму

Отправлено: 12:57, 28-11-2007 | #783


Аватара для Creat0R

Must AutoIt


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

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


amel27,
Цитата:
только вот непонятно под какую версию делать UDF - новую или старую?
Конечно же новую, старую никто переделвать уже не будет
Я думаю нужно запостить в форум AutoIt Feature Requests, назвать тему можно примерно так: “Unicode Support for _GUICtrlStatusBar_SetText()”
И предложить чтобы добавили дополнительный параметр $iUFlag...
Кстати, я до сих пор не понял, для чего функция _GUICtrlStatusBarSetUnicode()? что она делает? я ведь думал что именно она мне позволит отображать юникод в статусбаре.

По поводу всё того же юникода... если нельзя определить кодировку (её тип) строки, то может всё же возможно определить не является ли строка юникодной? т.е проверить нет ли юникодных символов в $String'е. Т.к нужно знать какой параметр ставить в той же функции для статусбар, ведь с 65001 не юникодная строка отображаться корректно не будет

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 21:25, 28-11-2007 | #784


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


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

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


видимо моя проблема так и не решится (

Отправлено: 21:34, 28-11-2007 | #785


Аватара для Maza Faka

Ветеран


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

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


fak1r
Цитата:
видимо моя проблема так и не решится
Что за проблема?

-------
Сообщение помогло? Не забудьте нажать на Полезное сообщение


Отправлено: 06:35, 29-11-2007 | #786


Googler


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

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


Maza Faka
пролистай назад, требуется автоматизация задач:

- регистрация на сайте (линк дан);
- заливка на сайт файлов.

Creat0R
Цитата:
я до сих пор не понял, для чего функция _GUICtrlStatusBarSetUnicode()? что она делает? »
Судя по немногочисленным примерам переключает контрол в юникодовый режим, только я плохо представляю как можно передать юникодовый текст ANSI-сообщением... и тем более в каком он должен быть формате: UTF-8 или UTF-16?.. И еще настораживает тот факт, что в тырнете по сообщениям типа SB_SETUNICODEFORMAT инфа практически отсутствует... ИМХО все же перед тем как постить свой вариант нужно определиться чем не устраивает предложенный разработчиками способ...
Цитата:
предложить чтобы добавили дополнительный параметр $iUFlag »
кроме прочего это будет идти в разрез с ихней кодировкой форматов
Цитата:
может всё же возможно определить не является ли строка юникодной? »
можно проверить на соответствие строки требованиям формата, к примеру для UTF-8:
Код: Выделить весь код
Func _StringIsUTF8Format($string)
    Local $asc, $i, $j, $len = StringLen($string), $ext = $len
    For $i=1 To $len
        $asc = Asc(StringMid($string, $i, 1))
        If Not(BitAnd($asc,0x80)) Then
            $ext=0
        ElseIf Not(BitXOR(BitAnd($asc,0xE0),0xC0)) Then
            $ext=1
        ElseIf Not(BitXOR(BitAnd($asc,0xF0),0xE0)) Then
            $ext=2
        ElseIf Not(BitXOR(BitAnd($asc,0xF8),0xF0)) Then
            $ext=3
        EndIf
        If $i+$ext>$len Then Return False
        For $j = $i+1 To $i+$ext
            $asc = Asc(StringMid($string, $j, 1))
            If BitXOR(BitAnd($asc,0xC0),0x80) Then Return False
        Next
        $i+=$ext
    Next
    Return True
EndFunc
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:45, 29-11-2007 | #787


Пользователь


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

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


Все привет.
Как написать, что я зажал кнопку SHIFT ?
Объясните пожалуйсто, вот есть команда ControlClick("Adobe Acrobat 8 Professional", "", "[CLASS:Button; TEXT:Accept; INSTANCE:2]")
INSTANCE:2 - что это такое и откуда это берется?
Спасибо.

Последний раз редактировалось HORRIBLE, 30-11-2007 в 01:23.


Отправлено: 01:02, 30-11-2007 | #788


Аватара для Maza Faka

Ветеран


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

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


HORRIBLE
Цитата:
Как написать, что я зажал кнопку SHIFT ?
Код: Выделить весь код
Send("{+ Down}")
Цитата:
INSTANCE:2 - что это такое и откуда это берется?
Это вроде порядкового номера кнопки, если кнопок несколько, то у каждой свой INSTANCE.

В справке всё это обьясняется и очень подробно!

-------
Сообщение помогло? Не забудьте нажать на Полезное сообщение


Отправлено: 06:58, 30-11-2007 | #789


Googler


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

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


Цитата Maza Faka:
Send("{+ Down}") »
не так, Shift+Down это будет: Send("+{Down}")

Цитата HORRIBLE:
есть команда ControlClick("Adobe Acrobat 8 Professional", "", "[CLASS:Button; TEXT:Accept; INSTANCE:2]")
[...] что это такое »
то же самое что ControlClick("Adobe Acrobat 8 Professional", "", "Button2")

Creat0R
вроде разобрался как управлять кнопками питания, вот UDF и пример:
Код: Выделить весь код
Global Const $PowerActionNone = 0
Global Const $PowerActionReserved = 1
Global Const $PowerActionSleep = 2
Global Const $PowerActionHibernate = 3
Global Const $PowerActionShutdown = 4
Global Const $PowerActionShutdownReset = 5
Global Const $PowerActionShutdownOff = 6
Global Const $PowerActionWarmEject = 7

Dim $aOFF[3]=[0,0,0]
$aBAK = PowerKeysCallState($aOFF) ; читаем/записываем состояние клавиш
MsgBox(0,'','Клавиши питания заблокированы!')
PowerKeysCallState($aBAK) ; восстанавливаем состояние клавиш
MsgBox(0,'','Состояние клавиш восстановлено!')

; $aKeys[0] - Power Key Action
; $aKeys[1] - Sleep Key Action
; $aKeys[2] - NoteBook Close Action

Func PowerKeysCallState($aKeys = 0)
    Local Const $SysPwrPolLen = 232 ; size of SYSTEM_POWER_POLICY structure
    Local $buf = DllStructCreate("byte["&$SysPwrPolLen&"]")
    Local $tmp = DllStructCreate("long;int;long[2];int;long[2];int;long[2]", DllStructGetPtr($buf))
    ; Чтение текущей системной политики питания
    Local $ret = DllCall("PowrProf.dll", "int", "CallNtPowerInformation", "int", 0, _
        "ptr", 0, "int", 0, "ptr", DllStructGetPtr($buf), "int", DllStructGetSize($buf))
    If Not(IsArray($ret)) Then SetError(1, @error) ; ошибка DLL
    If $ret[0] Then Return SetError(2, $ret[0])    ; ошибка чтения политики
    ; Сохранение текущей конфигурации клавиш в выходном массиве
    Local $i, $res[3]
    For $i=1 To 3
        $res[$i-1] = DllStructGetData($tmp,$i*2)
    Next
    ; Сохранение требуемой конфигурации в структуре данных политики
    If UBound($aKeys,1)=3 Then ; проверка типа данных
        For $i=1 To 3
            If BitShift($aKeys[$i-1],3)=0 Then ; проверка допустимого значения
                DllStructSetData($tmp, $i*2, $aKeys[$i-1])
                If $aKeys[$i-1]=0 Then DllStructSetData($tmp,$i*2+1,BitOR (DllStructGetData($tmp,$i*2+1,2),0x80000000),2)
                If $aKeys[$i-1]>0 Then DllStructSetData($tmp,$i*2+1,BitAND(DllStructGetData($tmp,$i*2+1,2),0x7FFFFFFF),2)
            EndIf
        Next
        ; Применение новой политики
        $ret = DllCall("PowrProf.dll", "int", "CallNtPowerInformation", "int", 0, _
            "ptr", DllStructGetPtr($buf), "int", $SysPwrPolLen, "ptr", 0, "int", 0)
        If Not(IsArray($ret)) Then SetError(1, @error) ; ошибка DLL
        If $ret[0] Then Return SetError(3, $ret[0])    ; ошибка записи политики
    EndIf
    Return $res
EndFunc
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:07, 30-11-2007 | #790



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [архив - Часть 2] AutoIt скрипты

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Открывая 7z архив пишет не удаётся открыть как архив. Можно ли его восстановить? DreDo Хочу все знать 4 01-12-2009 18:54
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:. Vadikan AutoIt 1543 18-01-2009 10:46
[Архив - Часть 1.3] AutoIt скрипты biork AutoIt 503 09-06-2007 11:27
[Архив - Часть 1.2] AutoIt скрипты Dirk Diggler AutoIt 505 02-12-2006 11:00
[Архив - Часть 1.1] AutoIt скрипты EgOrus AutoIt 335 04-02-2006 16:58




 
Переход