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

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

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

(*.*)


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


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

Профиль | Сайт | Отправить 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

 

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


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

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


Первый мой скрипт выглядел премерно так только пути были прописаны полностьюа здесь использованы макросы и переменые
код:
$MyProga = ""
$MyRazdel1 = ""
$MyRazdel2 = ""
$MyRazdel3 = ""
DirCopy("@AppDataDir/$MyProga", "$MyRazdel1", 1)
DirCopy("@AppDataCommonDir/$MyProga", "$MyRazdel2", 1)
DirCopy("@ProgramFilesDir/$MyProga", "$MyRazdel3", 1)
Shutdown(6)

Проблема была вследующем при тестировании всё работало но на другой машине обнаружилось что скрипт не отрабатываеться полностью а комп уходит на перезагрузку как можно написать чтобы команда "Shutdown" не отрабатывалась пока небудут перемещены все деректории.

И насколько я понял FileInstall("", "") может перемещать только фаилы а с деректориями неработает.

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


Отправлено: 12:41, 11-11-2008 | #1131



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

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


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

Ветеран


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

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


litus
Вообще-то функция Shutdown() должна "дождаться" завершения функции DirCopy() Проверяй, что возвращают функции DirCopy(). Кстати у тебя слеш неправильный используется, нужно использовать обратный \ хотя на работу функции и не влияет, но всё же...

Цитата litus:
И насколько я понял FileInstall("", "") может перемещать только фаилы а с деректориями неработает. »
Угу, только не перемещать, а включать файлы в копмилированный скрипт
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:07, 11-11-2008 | #1132


Googler


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

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


TERMINAL
Цитата:
показывыает естественно устройства категории Media, а если имеется неустановленное устройство и вместо Media ставишь Unknown то он почему то пишет что никаких необнаруженных устройств нет »
странно, только на вновь установленном буке проверил - семь "вопросов", семь устройств класса Unknown, а что за устройства?.. вообще, класс берется из драйвера, т.е. пока драйвер не установлен класс неопределен... Значит, это устройство должно светиться под другим классом, попробуй следующий код для перечисления всех устройств по классам и найди своё:
Код: Выделить весь код
#include <Constants.au3>

$aClasses = _DevGetClasses()
If IsArray($aClasses) Then
    For $i=1 To $aClasses[0]
        $txt = _DevConExe("ListClass "& $aClasses[$i])
        $buf = StringRegExp($txt, "(?:[&\w]+\\)+[&\w]+", 3)
        If IsArray($buf) Then
            ConsoleWrite("Class: "& $aClasses[$i] &@CRLF)
            ConsoleWrite(@CRLF)
            For $j=0 To UBound($buf)-1
                ConsoleWrite($buf[$j]&@CRLF)
            Next
        ConsoleWrite("-----" &@CRLF)
        EndIf
    Next
EndIf

Func _DevConExe($command)
    Local $foo = Run(@ComSpec &" /C DevCon "& $command, @SystemDir, @SW_HIDE, $STDOUT_CHILD)
    Local $out = ""
    While 1
        $out &= StdoutRead($foo)
        If @error Then ExitLoop
    Wend
    Return $out
EndFunc

Func _DevGetClasses()
    Local Const $sRoot = "HKLM\System\CurrentControlSet\Control\Class"
    Local $sKey, $arr[1]=[0]
    For $i=1 To 999
        $sKey = RegEnumKey($sRoot, $i)
        If @error Then ExitLoop
        ReDim $arr[$i+1]
        $arr[$i]=RegRead($sRoot &"\"& $sKey,"Class")
    Next
    $arr[0]=UBound($arr)-1
    Return $arr
EndFunc

Отправлено: 13:15, 11-11-2008 | #1133


Аватара для Creat0R

Must AutoIt


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

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


litus,
Цитата litus:
здесь использованы макросы и переменые »
Они неверно используются, нужно вне кавычках их выводить:

Код: Выделить весь код
$MyProga = ""
$MyRazdel1 = ""
$MyRazdel2 = ""
$MyRazdel3 = ""

DirCopy(@AppDataDir & "\" & $MyProga, $MyRazdel1, 1)
DirCopy(@AppDataCommonDir & "\" & $MyProga, $MyRazdel2, 1)
DirCopy(@ProgramFilesDir & "\" & $MyProga, $MyRazdel3, 1)

Shutdown(6)

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

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

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

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

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


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


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

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


Вообще-то функция Shutdown() должна "дождаться" завершения функции DirCopy() Проверяй, что возвращают функции DirCopy().
---------
Втом и вопрос как проверить значение возращаемое функциейесли она выполняеться то возращает "1" а только потом выполняеться следующая функция.

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


Отправлено: 13:32, 11-11-2008 | #1135


Аватара для Creat0R

Must AutoIt


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

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


Цитата litus:
Втом и вопрос как проверить значение возращаемое функцией »
Подставить переменную перед ней

Код: Выделить весь код
$MyProga = ""
$MyRazdel1 = ""
$MyRazdel2 = ""
$MyRazdel3 = ""

$iDir_1_Copied = DirCopy(@AppDataDir & "\" & $MyProga, $MyRazdel1, 1)
$iDir_2_Copied = DirCopy(@AppDataCommonDir & "\" & $MyProga, $MyRazdel2, 1)
$iDir_3_Copied = DirCopy(@ProgramFilesDir & "\" & $MyProga, $MyRazdel3, 1)

MsgBox(64, "Results", _
    StringFormat("$iDir_1_Copied = %i\n$iDir_2_Copied = %i\n$iDir_3_Copied = %i", $iDir_1_Copied, $iDir_2_Copied, $iDir_3_Copied))

If $iDir_1_Copied And $iDir_2_Copied And $iDir_3_Copied Then Shutdown(6)

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

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

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

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

Отправлено: 13:44, 11-11-2008 | #1136


Аватара для TERMINAL

Ветеран


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

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


amel27, спасибо большое-нашёл другой способ как обходить и решать эту проблему....

-------
Автоматизация прежде всего....


Отправлено: 14:06, 11-11-2008 | #1137


Аватара для Creat0R

Must AutoIt


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

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


Цитата litus:
Прокоментируйте пожалуста код »
Первое только для отображения значения переменнных, а вторя строка для проверки этих переменных, если они все ровны 1 (True), то выключаем компьютер. Т.е все три папки скопировались.

Можно ещё так:

Код: Выделить весь код
$iCopied_Dirs_Count = DirCopy(@AppDataDir & "\" & $MyProga, $MyRazdel1, 1)
$iCopied_Dirs_Count += DirCopy(@AppDataCommonDir & "\" & $MyProga, $MyRazdel2, 1)
$iCopied_Dirs_Count += DirCopy(@ProgramFilesDir & "\" & $MyProga, $MyRazdel3, 1)

If $iCopied_Dirs_Count = 3 Then Shutdown(6)

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

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

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

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

Отправлено: 18:26, 11-11-2008 | #1138


Аватара для semiono

Ветеран


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

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


help!
Код: Выделить весь код
Dim $var1 = '"' & @WindowsDir & '\' 

Run(@ComSpec & " /c " & 'rundll32.exe Shell32.dll,Control_RunDLL desk.cpl desk,@Themes /Action:OpenTheme /File:' & $var1 & 'Resources\Themes\Tiger.theme"', "", @SW_HIDE)

WinWait("Display Properties", "",3)

Send("{ENTER}")

Exit
Можно как-то аплет тут запрятать -> @SW_HIDE? Тот который "Display Properties"?
...я сам ещё потружусь, но боюсь не смогу боюсь...

-------
Полезное сообщение


Отправлено: 06:55, 12-11-2008 | #1139


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

Ветеран


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

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


Цитата semiono:
Можно как-то аплет тут запрятать »
Через Run() нет. Как вариант можно спрятать окно функцией WinSetState()

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


Отправлено: 08:28, 12-11-2008 | #1140



Компьютерный форум 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




 
Переход