Имя пользователя:
Пароль:
 | Правила  

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

Закрытая тема
Настройки темы
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.

(*.*)


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


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

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


Изменения
Автор: Vadikan
Дата: 21-01-2009
Описание: архив
Внимание!


В связи с созданием отдельного форума по AutoIt, эта тема переводится в архивное состояние. Если у вас есть вопрос, создайте новую тему или поднимите существующую, если в ней обсуждается аналогичная проблема.

Пожалуйста, не создавайте тем с названием "Помогите!" или "Нужна помощь по AutoIt". Это и так понятно Заголовок темы должен быть осмысленным.



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


Справочник по командам rundll32 (команды запуска диалоговых окон и не только...)

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

Архивы старых тем по AutoIt или они же в 7z архиве (версии для печати) - 846 кб (настоятельно рекомендуется к прочтению/поиску)
(он же прикреплен в шапке)


Данная тема предназначена для общих вопросов по 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 | Цитировать


kaZilla
Цитата:
Надо сделать автоскрипт на смену резрешений в реестре для ветки »
согласен с Maza Faka, такие задачи лучше решать "в лоб"... теоретически, установку прав можно сделать без сторонних утилит (где-то тут мелькал линк на описалово), но сия задача весьма трудоемкая и даже оффсайт AutoIT рекомендует использовать сторонние модули (Set ACL properties in Windows)... я проверил предложенный ptrex COM объект - работает, НО мне не удалось завести метод $SET_ACCESS в режиме правки текущего ACL (без добавления нового), кроме того не удалось добавить ACL при отсутствии прав на ветку, но при наличии владения (RegEdit в этом случае добавляет права нормально)... поэтому я пока не вижу смысла в полной чистке всех прав ($ACTN_CLEARDACL), т.к. добавить их потом нет никакой возможности, а заявленная способность нескольких операций "за раз" увы, не работает... и тем не менее для большинства простых случаев этот способ будет полезен, рабочий пример (значения констант нужно скопировать с топика ptrex):
Код: Выделить весь код
$strFileName   = "HKCU\TEST"
$strUsername   = "S-1-5-32-544" ; Administrators
$strPermission = "read"
; Снятие наследуемых разрешений
$SetACL1 = ObjCreate("SetACL.SetACLCtrl.1")
If IsObj($SetACL1) Then
    $nError = $SetACL1.SetObject($strFileName, $SE_REGISTRY_KEY)
    $nError = $SetACL1.SetObjectFlags($INHPARNOCOPY, 0, True, False)
    $nError = $SetACL1.SetAction($ACTN_SETINHFROMPAR)
    $nError = $SetACL1.Run
EndIf
; Удаление заданной учетной записи из списков доступа
$SetACL1 = ObjCreate("SetACL.SetACLCtrl.1")
If IsObj($SetACL1) Then
    $nError = $SetACL1.SetObject($strFileName, $SE_REGISTRY_KEY)
    $nError = $SetACL1.AddTrustee($strUsername, "", True, False, $ACTN_REMOVETRUSTEE, True, False)
    $nError = $SetACL1.SetAction($ACTN_TRUSTEE)
    $nError = $SetACL1.Run
EndIf
; Установка прав для заданной учетной записи
$SetACL1 = ObjCreate("SetACL.SetACLCtrl.1")
If IsObj($SetACL1) Then
    $nError = $SetACL1.SetObject($strFileName, $SE_REGISTRY_KEY)
    $nError = $SetACL1.SetAction($ACTN_ADDACE)
    $nError = $SetACL1.AddACE($strUsername, True, $strPermission, $INHPARNOCHANGE, False, $SET_ACCESS, $ACL_DACL)
    $nError = $SetACL1.Run
EndIf
Прямой линк на оффсайт SetACL: http://sourceforge.net/projects/setacl/
там же лежит CMD-вариант утилиты, хотя для серьезных задач рекомендую SubInACL

Отправлено: 11:53, 21-11-2008 | #1191



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

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


Аватара для morgan1991

Старожил


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

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


t_ara_s,
Код: Выделить весь код
#include <Inet.au3>
$PublicIP = _GetIP()
If $PublicIP = -1 Then main()

Есть инет ломиться туда

Func main()
    Инэта нет установка
EndFunc

-------
Хочу научиться писать драйвера на с++

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

Отправлено: 15:19, 21-11-2008 | #1192


Аватара для t_ara_s

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


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

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


Мне надо сделать автоустановку. Если ставить на чистую систему, то все норм, а если программа уже установлена и спрашивает "восстановить" или "удалить" то как? Что-то типа если окно 1, то комманда 1, если окно 2, то команда 2?

-------
I want to know everything...


Отправлено: 15:49, 21-11-2008 | #1193


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

Ветеран


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

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


Цитата t_ara_s:
если программа уже установлена и спрашивает "восстановить" или "удалить" то как? »
Что как? Тебе нужно проверить установлена ли программа или выполнить действия в зависимости от
Цитата:
спрашивает "восстановить" или "удалить"

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


Отправлено: 16:11, 21-11-2008 | #1194


Аватара для Котяра

Ветеран


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

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


Что если появляется окно

выполнить одно действие
А если

то другое. Хотя, действительно, можно просто
Цитата Maza Faka:
проверить установлена ли программа »
вместо разбора окна

Отправлено: 18:25, 21-11-2008 | #1195


Аватара для t_ara_s

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


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

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


Спасибо, но я ето и сам знаю. А вот как ето прописать в скрипте? Напишите пожалуйста кому не лень, а то я скрипты пишу только благодаря SkriptWriter :-)

-------
I want to know everything...


Отправлено: 21:42, 21-11-2008 | #1196


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

Ветеран


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

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


t_ara_s
Код: Выделить весь код
WinGetText()
ControlGetText()
If...Then...Else

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

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

Отправлено: 06:53, 22-11-2008 | #1197


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


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

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


Цитата t_ara_s:
Если ставить на чистую систему, то все норм, а если программа уже установлена и спрашивает »
t_ara_s, каждая программа в процессе установки создает себе папочку (директорию), в которой она, собственно, и обитает... Так вот можно проверить наличие данной папочки, или проверить наличие в папочке программы файла, который там ОБЯЗАТЕЛЬНО присутствует...
Код: Выделить весь код
If FileExists (@ProgramfilesDir&'\Proga\File.exe') = 1 then Exit
Или
Код: Выделить весь код
If FileExists (@ProgramfilesDir&'\Proga\File.exe') then 
    MsgBox (0, 'test', 'Программа уже установлена')
Else
    MsgBox (0, 'test', 'Программа еще не установлена')
EndIf
Также можно воспользоваться ключами реестра, которые программа создает в процессе установки, если создает конечно.
Тут поможет
Код: Выделить весь код
RegRead ( "keyname", "valuename" )
Который возвращает значение ключа реестра... Если вернул пустую строку ('') значит, скорее всего, нету его и, соответственно, программа не установлена.

-------
ira furor brevis est


Последний раз редактировалось Grammaton Cleric, 24-11-2008 в 01:56.

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

Отправлено: 07:50, 22-11-2008 | #1198


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


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

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


Здравствуйте посетители форума на досуге собрал несколько скриптов "тихих установок" с за премер были взяты скрипты от
Sanja Alone меня заинтересовали следующие строчки:
;Отображать текущую строку сценария с помощью индикатора системной панели в режиме отладки.
AutoItSetOption("TrayIconDebug", 1)
AutoItSetOption("SendKeyDelay", 10)
If ProcessExists ( "ps.exe" )<>0 Then
ProcessClose ( "ps.exe" )
ProcessWaitClose ( "ps.exe" )
EndIf
Какую операцию выполняет даное выражение и объязательно ли включать эти строки в свои скрипты?
Если вопрос оказался глупым обьясните как это говориться "КАК ДЛЯ ЛАМЕРА" учитывая то что я невижу точто на монеторе у меня проблемы с зрением я работаю с синтезатором речи без помощи глаз и зрячего програмиста под рукой нет для того чтобы прокоментировать произходящее.

Также изучая файл справки "AutoIt3_2_5_4_ru.chm" обнаружил одно недоразумение непереведены несколько разделов на русский язык а имено:
указатель библиотечных функций / Автоматизация MS Internet Explorer
Подскажите делал ли Валерий Викторович Иванов полный перевод этих разделов если да то где можно скачать этот дестребутив.

-------
Да всё гениальное заключаеться в простом!!!


Отправлено: 13:31, 24-11-2008 | #1199


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

Ветеран


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

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


Цитата litus:
Какую операцию выполняет даное выражение »
Код: Выделить весь код
AutoItSetOption("TrayIconDebug", 1)
Если установить эту опцию, то при наведении курсора мыши на иконку выполняющегося скрипта в трее, будет отображаться информация о том, какая именно строка кода выполняется в данный момент (не работает в скомпилированном коде). Полезно при отладке кода.

AutoItSetOption("SendKeyDelay", 10)
Изменяет длительность задержки между нажатиями клавиш. (По умолчанию 5 мс.).

If ProcessExists ( "ps.exe" )<>0 Then
Если процесс ps.exe существует то...

ProcessClose
Закрываем процесс.

ProcessWaitClose
Ждём закрытия процесса.

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

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

Отправлено: 15:27, 24-11-2008 | #1200



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[архив - Часть 2] AutoIt скрипты Vadikan AutoIt 985 21-01-2008 09:58
Вопрос - [Архив] Антивирусные программы - ОБЩИЕ ВОПРОСЫ FOX RED Защита компьютерных систем 67 21-11-2007 15:05
[Архив - Часть 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




 
Переход