|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:. |
|
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.
|
(*.*) Сообщения: 36561 |
Внимание! В связи с созданием отдельного форума по AutoIt, эта тема переводится в архивное состояние. Если у вас есть вопрос, создайте новую тему или поднимите существующую, если в ней обсуждается аналогичная проблема. Пожалуйста, не создавайте тем с названием "Помогите!" или "Нужна помощь по AutoIt". Это и так понятно ![]() ![]() Сайт программы Русская справка Коллекция AutoIt скриптов от Sanja Alone Коллекция AutoIt скриптов от MSFN (могут быть устаревшие). Справочник по командам rundll32 (команды запуска диалоговых окон и не только...) AutoIt скрипты - введение и FAQ (статья содержит вводную информацию по AutoIt, а также ответы на ЧаВо). Архивы старых тем по AutoIt или они же в 7z архиве (версии для печати) - 846 кб (настоятельно рекомендуется к прочтению/поиску) (он же прикреплен в шапке) Данная тема предназначена для общих вопросов по AutoIt. Вопросы по установке приложений при помощи AutoIt следует задавать в соответствии с правилами форума "Автоматическая установка приложений". Таким образом, если вы хотите узнать как установить Winamp 5.x при помощи AutoIt, то создайте тему [autoit] Winamp 5.х (если таковой еще нет на форуме). Проверить наличие тем можно при помощи поиска или фильтров. Цитата Vadikan:
|
||
------- Отправлено: 00:02, 05-02-2006 |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать Прошу помощи
Есть код Dim $mass[1], $x=0,$Stop = 0 Do $mass[$x] = FileReadLine ("denylist.txt",$x+1) If @error=-1 Then $Stop=1 ReDim $Mass[$x] Else $x = $x+1 ReDim $Mass[$x+1] EndIf Until $Stop=1 Do $var = WinList() For $x=0 To UBound ($mass)-1 For $i = 1 to $var[0][0] If $var[$i][0] <> "" AND IsVisible($var[$i][1]) Then if StringInStr($var[$i][0], $mass[$x])<>0 Then beep(1000,250) MsgBox (16,"Сообщение для " & @UserName,$mass[$x] & " - НЕТ ДОСТУПА!",7) $GWP = WinGetProcess ($var[$i][0]) ;Получаем имя процесса по имени окна if WinGetProcess("explorer.exe") Then ;Если процесс explorer.exe тогда просто закроем окно(если открыта папка, а то как-то некрасиво ))) ) WinClose ($var[$i][0]) Else ProcessClose($GWP); Киляем полученный процесс EndIf EndIf EndIf Next Next Sleep(1000) Until $i=1 Func IsVisible($handle) If BitAnd( WinGetState($handle), 2 ) Then Return 1 Else Return 0 EndIf EndFunc Последние содержатся в denylist.txt icq qip и т.д. Все работает, но скрипт сильно напрягает процессор вопрос как разгрузить процессор? |
Последний раз редактировалось babaytugur, 02-05-2008 в 21:03. Отправлено: 20:26, 02-05-2008 | #471 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать babaytugur,
Цитата babaytugur:
#include <File.au3> HotKeySet("^q", "QuitApp") Dim $aDenyList, $aWinList, $aOld_WinList ;Читаем в массив файл denylist.txt _FileReadToArray("denylist.txt", $aDenyList) While 1 $aWinList = WinList() ;Проверяем окна только если есть изменения в списке (с момента последней проверки) If Not _Array2DIsIdentical($aWinList, $aOld_WinList) Then $aOld_WinList = $aWinList For $i = 1 To UBound($aWinList)-1 For $j = 1 To UBound($aDenyList)-1 If _WinIsVisible($aWinList[$i][1]) And StringInStr($aWinList[$i][0], $aDenyList[$j]) Then Beep(1000, 250) _MsgBox(16, "Сообщение для " & @UserName, $aDenyList[$j] & " - НЕТ ДОСТУПА!", $aWinList[$i][1]) $iWinProcess = WinGetProcess($aWinList[$i][1]) If WinGetTitle("[CLASS:CabinetWClass;TITLE:" & $aWinList[$i][0] & "]") = $aWinList[$i][0] Then WinClose($aWinList[$i][1]) Else ProcessClose($iWinProcess) EndIf EndIf Next Next EndIf Sleep(1000) WEnd Func _MsgBox($MsgBoxType, $MsgBoxTitle, $MsgBoxText, $Main_GUI=0) Local $aRet = DllCall("user32.dll", "int", "MessageBoxW", _ "hwnd", $Main_GUI, _ "wstr", $MsgBoxText, _ "wstr", $MsgBoxTitle, _ "int", $MsgBoxType) Return $aRet[0] EndFunc Func _Array2DIsIdentical($av2DArray_a, $av2DArray_b, $iLastElement=1) If UBound($av2DArray_a) <> UBound($av2DArray_b) Then Return False For $i = 0 To UBound($av2DArray_a)-1 For $j = 0 To $iLastElement If $av2DArray_a[$i][$j] <> $av2DArray_b[$i][$j] Then Return False Next Next Return True EndFunc Func _WinIsVisible($handle) Return BitAnd(WinGetState($handle), 2) EndFunc Func QuitApp() Exit EndFunc |
|
------- Отправлено: 00:38, 03-05-2008 | #472 |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать Спасибо!!!
все работает буду анализировать код |
Отправлено: 00:58, 03-05-2008 | #473 |
![]() Ветеран Сообщения: 753
|
Профиль | Отправить PM | Цитировать Creat0R, Помоги плз написать скрипт....
Есть 40-50 папок с разными названиями, в каждой, из этих файлов, лежит скрипт с именем Auto.exe. Мне нужно чтобы этот скрипт запускался по очереди (я так думаю это юудет команда RunWait ) из каждой папки и с помощью команды TrayTip("Установка скрипта №", "Выполняется установка NAME", 5, 4), где №-номер очередной папки по счёту, а NAME имя папки из которой стартует скрипт, отображал данную процедуру... А то приходится вручною прописывать каждую процедуру....Возможно ли вышеуказанное сделать на скрипте?! |
------- Отправлено: 14:27, 03-05-2008 | #474 |
Ветеран Сообщения: 604
|
Профиль | Отправить PM | Цитировать TERMINAL
Цитата:
![]() Поищи на форуме примеры рекурсивного перебора файлов-папок (FileFindFirstFile()) и переделай под свою задачу, если не получится - поможем. ![]() |
|
Отправлено: 15:29, 03-05-2008 | #475 |
![]() Ветеран Сообщения: 753
|
Профиль | Отправить PM | Цитировать Maza Faka, спс-сделал !
|
------- Отправлено: 17:49, 03-05-2008 | #476 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата babaytugur:
|
|
Отправлено: 11:13, 04-05-2008 | #477 |
Ветеран Сообщения: 825
|
Профиль | Отправить PM | Цитировать amel27, А случайно кода для tftp сервера нету у Вас. А так же и binlsrv.py из пакета Ris-linux.
|
Отправлено: 15:46, 04-05-2008 | #478 |
Пользователь Сообщения: 143
|
Профиль | Отправить PM | Цитировать Maza Faka,
Binarу, я что то не понимаю, а как тогда, к примеру число 301 превратить в такое 100101101, а то эта команда что то не то выдает. Спасибо. |
Отправлено: 00:12, 05-05-2008 | #479 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать NikLok
Цитата:
HORRIBLE все не так просто - для текстового представления чисел предназначена ф-ция StringFormat(), но AutoIT штатно поддерживает только представления по основанию 16 и 8, для других оснований придется ваять UDF, как один из вариантов: ConsoleWrite(_Bin(301) & @CRLF) Func _Bin($iNumber) If Not IsInt($iNumber) Then Return SetError(1, 0, "") Local $sHex = StringFormat("%X",$iNumber), $sBin = "" Local Const $aHexToBin[16] = ["0000","0001","0010","0011","0100","0101","0110","0111","1000","1001","1010","1011","1100","1101","1110","1111"] For $i=1 To StringLen($sHex) $sBin &= $aHexToBin[Dec(StringMid($sHex,$i,1))] Next Return StringRegExpReplace($sBin, "^0+", "") EndFunc ConsoleWrite(_Bin(301) & @CRLF) Func _Bin($iNumber) If Not IsInt($iNumber) Then Return SetError(1, 0, "") Local $sBin = "" If $iNumber>0 Then While $iNumber $sBin = BitAND($iNumber,1) & $sBin $iNumber = BitShift($iNumber,1) WEnd Return $sBin ElseIf $iNumber<0 Then For $i=1 To 32 $sBin = BitAND($iNumber,1) & $sBin $iNumber = BitRotate($iNumber, -1, "D") Next Return $sBin EndIf Return "0" EndFunc |
|
Последний раз редактировалось amel27, 05-05-2008 в 09:39. Отправлено: 03:21, 05-05-2008 | #480 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[архив - Часть 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 |
|