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

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

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

(*.*)


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


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

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

 

Аватара для TERMINAL

Ветеран


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

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


amel27, Creat0R, Подскажите плз...Как удалить с рабочего стола все ярлыки за исключением ярлыка КОРЗИНА.lnk. Я написал скриптик, но как только он встречает ярлык КОРЗИНА - сразу скрипт перестаёт работать.

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


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



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

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


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

Ветеран


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

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


TERMINAL
Вообще-то корзина это не ярлык, а класс и так просто с рабочего стола её не удалить, можно через реестр:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{645FF040-5081-101B-9F08-00AA002F954E}]
@="Recycle Bin"

Выложи свой скрипт.

Отправлено: 11:31, 30-11-2007 | #792


Аватара для TERMINAL

Ветеран


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

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


Maza Faka, Ты меня не понял-мне все ярлыки нужно удалить за исключением корзины.

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


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


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

Ветеран


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

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


TERMINAL
Можно так:
Код: Выделить весь код
#include <File.au3>

Dim $path = @DesktopDir
Global $LnkArray = _FileListToArray($path, "*.lnk")
_ArrayDisplay($LnkArray)

For $i = 1 To $LnkArray[0]
    If $LnkArray[$i] <> "Корзина.lnk" Then FileDelete($path &"\"& $LnkArray[$i])
    Next
Но если ярлыков много, то будет быстрее, если переместить ярлык "корзины" в другую папку, удалить все ярлыки и переместить ярлык "корзины" обратно.

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


Отправлено: 15:38, 30-11-2007 | #794


Ветеран


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

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


amel27,
Цитата amel27:
для начала можно ТУТ (главы 8, 9 »
Ты не в курсе почему не открывается этот материал более?

А самое главное нет ли у тебя да и у Creatora заодно желание создать аналог BSPI, который я очень уважаю, но автор его редко дорабатывает!
Я думаю преимущества Вам понятны. А сама разработка была бы замечательным учебным примером для остальных!

Последний раз редактировалось NikLok, 30-11-2007 в 17:09.


Отправлено: 16:05, 30-11-2007 | #795


Аватара для Creat0R

Must AutoIt


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

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


amel27,
Цитата:
можно проверить на соответствие строки
Работает, спасибо - я не думал что это реально построить лишь встроенными функциями AutoIt'а

HORRIBLE, Maza Faka, amel27,
Цитата:
Send("{+ Down}")
Цитата:
не так, Shift+Down это будет: Send("+{Down}")
Но как я понял, требуется зажать Shift, а не Shift и вниз ...

Send("{SHIFTDOWN}"), и соответственно отпустить - Send("{SHIFTUP}").
amel27,

Цитата:
вроде разобрался как управлять кнопками питания, вот UDF и пример:
Я не сомневался , ещё и в придачу “блокирует” закрытие крышки ноута - Спасибо.

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

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

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:16, 30-11-2007 | #796


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


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

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


Изображения
Тип файла: jpg untitled.JPG
(204.7 Kb, 12 просмотров)

Скажите почему не работает последняя команда, что я не так пишу???
Или тут нельзя этой командой пользоваться, а можно только табом добраться до кнопочки ACCEPT?
Пасибо.

Отправлено: 14:44, 01-12-2007 | #797


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

Ветеран


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

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


HORRIBLE
Попробуй так:
Код: Выделить весь код
ControlClick("Adobe Acrobat 8 Professional", "", "Internet Explorer_Server1")

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


Последний раз редактировалось Maza Faka, 01-12-2007 в 17:15.


Отправлено: 15:55, 01-12-2007 | #798


Аватара для Creat0R

Must AutoIt


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

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


amel27,
По поводу определения флэша...
Я проверил, на системе никогда не устанавливался флэш плеер, функция от piccaso вернула версию 6, я установил плеер, возвращает 9 - вот я и подумал, а что если просто проверять совместимость текущей версии и версии плеера? (или может есть возможность послать запрос (от лица IE) на получение инфы о том, установлен ли в системе Flash плеер?).

Вот что у меня получилось в результате:

Код: Выделить весь код
Global $oErr = ObjEvent("AutoIt.Error", "_ComError")

$FlashCurrentVersion = _GetFlashVersion()
$FlashIsCompatible = IsCompatible_Flash_Version($FlashCurrentVersion)

If Not @error Then
    MsgBox(64, "", "Flash Player is compatible (installed last version)? = " & $FlashIsCompatible)
Else
    MsgBox(48, "Error", "Please check your connection to the Internet.")
EndIf

Func IsCompatible_Flash_Version($Version=9)
    If Number($Version) <= 0 Then Return False

    Local $sSource = _HTTPGetSource("www.adobe.com", "/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash")
    If @error Then Return SetError(1, 0, -1)

    Local $InetFlashVersion = StringRegExpReplace($sSource, '(?i)(?s).*?<strong>Version</strong>:(.*?)</li>.*', '\1')
    $InetFlashVersion = StringStripWS($InetFlashVersion, 3)
    $InetFlashVersion = StringLeft($InetFlashVersion, 1)
    If Number($InetFlashVersion) > Number($Version) Then Return False
    Return True
EndFunc

Func _GetFlashVersion()
    Local $oSwf, $sVersion
    $oSwf = ObjCreate("ShockwaveFlash.ShockwaveFlash")
    If @error Then Return 0 ; No flash at all
    $oSwf.AllowScriptAccess = "always"
    $sVersion = $oSwf.GetVariable("$Version")
    If @error Then
        $oSwf = ObjCreate("ShockwaveFlash.ShockwaveFlash.3")
        If @error Then
            $oSwf = ObjCreate("ShockwaveFlash.ShockwaveFlash.2")
            If @error Then Return 0
            Return 2
        EndIf
        Return 3
    EndIf
    $sVersion = StringTrimLeft($sVersion, 3)
    $sVersion = StringLeft($sVersion, StringInStr($sVersion, ",") - 1)
    Return Number($sVersion)
EndFunc

Func _HTTPGetSource($sHost, $sPage)
    TCPStartup()

    Local $sRetSource = ""
    Local $nCurrentLine, $sRcvBytes = 1024
    Local $Name_To_IP = TCPNameToIP($sHost)
    Local $iSocket = TCPConnect($Name_To_IP, 80)

    If $iSocket = -1 Then
        TCPCloseSocket($iSocket)
        Return SetError(1, 0, 0)
    EndIf

    Local $sCommand = "GET " & $sPage & " HTTP/1.1" & @CRLF
    $sCommand &= "Host: " & $sHost & @CRLF
    $sCommand &= "User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" & @CRLF
    $sCommand &= "Connection: close" & @CRLF & @CRLF

    Local $iBytesSent = TCPSend($iSocket, $sCommand)
    If $iBytesSent = 0 Or @error Then Return SetError(2, @error, 0)

    While 1
        $nCurrentLine = TCPRecv($iSocket, $sRcvBytes)
        If @error <> 0 Then ExitLoop
        If $nCurrentLine <> '' Then $sRetSource &= $nCurrentLine
    WEnd

    TCPCloseSocket($iSocket)
    TCPShutdown()

    Return $sRetSource
EndFunc

Func _ComError()
    ; Just set @error, the script will handle it...
    Local $iErr = $oErr.number
    If $iErr = 0 Then $iErr = -1
    SetError($iErr)
EndFunc
Один нюанс - я не уверен как задать «User Agent» для Http запроса, нужно в принципе для Internet Explorer, но в википедии слишком много вариантов, я выбрал самый простой (средний).

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

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

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


Отправлено: 01:48, 02-12-2007 | #799


Googler


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

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


Creat0R
Цитата:
на системе никогда не устанавливался флэш плеер, функция от piccaso вернула версию 6 »
может тогда не заморачиваться?
Код: Выделить весь код
Func IsShockwaveInst()
    Local $i
    For $i=13 To 7 Step -1
        If IsObj(ObjCreate("ShockwaveFlash.ShockwaveFlash." & $i)) Then Return True
    Next
    Return False
EndFunc
Цитата:
не думал что это реально построить лишь встроенными функциями AutoIt'а »
ты не понял мою мысль - проблема не в ограниченности языка, а в самой системе кодировок, та же UTF-8 строка всегда будет соответствать некоторой ANSI-последовательности... хотя она будет похожа скорей на набор спецсимволов, чем на осмысленный текст (а вдруг это шифротекст? ), поэтому чем длинней текст тем точней можно угадать кодировку

Цитата:
“блокирует” закрытие крышки ноута »
на самом деле приведенная UDF контролирует POWER-клавиши только для On-Line состояния, для управления клавишами в режиме On-Battery требуется другая такая же UDF (типа PowerKeysCallDCState), в которой первый параметр заменен с "0" на "1":
Код: Выделить весь код
    ; ...
    ; Чтение текущей системной политики питания
    Local $ret = DllCall("PowrProf.dll", "int", "CallNtPowerInformation", "int", 1, _
        "ptr", 0, "int", 0, "ptr", DllStructGetPtr($buf), "int", DllStructGetSize($buf))
        ; ...
        ; Применение новой политики
        $ret = DllCall("PowrProf.dll", "int", "CallNtPowerInformation", "int", 1, _
            "ptr", DllStructGetPtr($buf), "int", $SysPwrPolLen, "ptr", 0, "int", 0)
    ; ...

Последний раз редактировалось amel27, 02-12-2007 в 10:51.

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

Отправлено: 08:31, 02-12-2007 | #800



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




 
Переход