Войти

Показать полную графическую версию : [Архив - Часть 1.3] AutoIt скрипты


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 [21] 22 23 24 25 26

storm2005
15-05-2007, 16:11
Интересует взлом скомпилированного AutoIt .exe. Можно или нет это сделать, если при компиляции был выставлен пароль или убрана галка позволяющая декомпилировать?

Creat0R
15-05-2007, 17:25
storm2005
Можно или нет это сделать, если при компиляции был выставлен пароль или убрана галка позволяющая декомпилировать?
Если был выставлен пароль, то естественно при его наличии это возможно, а вот если была убрана галка позволяющая декомпилировать, то нет.

storm2005
16-05-2007, 10:02
Если был выставлен пароль, то естественно при его наличии это возможно, а вот если была убрана галка позволяющая декомпилировать, то нет.

если есть пароль но он неизвестен. можно ли декомпилировать?

интересует этот вопрос т. к. хочу устанавливать некоторый софт через логонный скрипт юзера. но проблема в том, что под юзером большинство софта не ставится т. к. юзер не обладает административными правами. в AutoIt нашел замечательную функцию RunAsSet в которой можно передать пароль в отличие от команды runas. но хотелось быть уверенным, что скомпилировав скрипт под паролем его никто не декомпилирует.

amel27
16-05-2007, 17:12
storm2005если есть пароль но он неизвестен. можно ли декомпилировать?Можно, причем это ответ не мой, а разработчиков... Говорят есть хакнутый aut2exe, декомпилирующий такие скрипты, хотя сам я его не видел... впрочем и не искал.
проблема в том, что под юзером большинство софта не ставится т. к. юзер не обладает административными правамитакие задачи обычно решаются клиент-серверным методом, когда один модуль работает с правами системы/админа и заточен на выполнение конкретных задач (например, установки софта), а второй - под обычным юзером и дает ему "команды"... Для этого можно использовать технологии COM, WMI или обычный скрипт, запущенный в качестве службы.

NikLok
16-05-2007, 22:22
storm2005
но хотелось быть уверенным, что скомпилировав скрипт под паролем его никто не декомпилирует.
Очень хочется примеры таких скриптов узнать! В смысле какую такую инфу ты защищаешь от пользователя.?!
ALL
Последнее время при адаптации скриптов под новые версии программ наталкиваюсь на странное поведение AutoIT.

А именно при выполнении команды ControlClick как бы не происходит отработки нажатия кнопки.
Например это началось в Wintools Net Pro начиная с версии после 8.1.1
Есть такой же проблемный кусок и в установке OutPost (вернее он всегда там был)

WinWaitActive("Configuration Wizard","")
$text = WinGetText("Configuration Wizard","")
If StringRegExp($text,"Some applications that can cause system stability issues") Then
If Not WinActive("Configuration Wizard","Some applications that can cause system stability issues") Then WinActivate("Configuration Wizard","Some applications that can cause system stability issues")
WinWaitActive("Configuration Wizard","Some applications that can cause system stability issues")
Send("{TAB}{ENTER}")
EndIF

If StringRegExp($text,"Advanced security") Then
If Not WinActive("Configuration Wizard","Advanced security") Then WinActivate("Configuration Wizard","Advanced security")
WinWaitActive("Configuration Wizard","Advanced security")
Sleep(30)
ControlClick("Configuration Wizard","Advanced security","Button3")
Sleep(30)
Send("{ENTER}")
EndIF


Не получается выбрать "Advanced security" и пройти далее.

Может кто-то уже решал такую проблему?!
Может как-то можно задавать длительность нажатия кнопки?!

Angel_19
17-05-2007, 20:17
В обсуждаемом продукте вроде есть запись макросов - как это можно осуществить и можно ли?

VelDmi
17-05-2007, 20:48
Имеется каталог CutDir. в нем куча файлов. Есть файл (file.txt) содержащий строки вида:
C:\Compare\CutDir\Bin\SD0405.dll
C:\Compare\CutDir\Bin\LOA\SD0434.dll
C:\Compare\CutDir\WEZ\BIGz\erwg.dll

Как правильнее удалить из каталога все файлы, не содержащиеся в списках?
Пробовал

$line = FileReadLine($file)
FileMove ($CutDir & $line2, $DestDir & $line2, 0)
Работает, только для файлов в корне каталога CutDir, т.е. он не создает автоматически вложенные каталоги при копировании. А мне нужно оставить только файлы, перечисленные в списке, причем и во всех вложенных каталогах тоже.

Creat0R
17-05-2007, 21:46
VelDmi
amel27 как то написал функцию возвращающую массив дерева каталогов включая подкаталоги, с её помощью эту задачу реализовать довольно просто:


#include <Array.au3>
#include <File.au3>

;Создаём нужные переменные и массив для содержания списка файлов которые удалять не нужно
$Dir = "CutDir"
$ExcludeListFile = "file.txt"
Dim $ExcludeListArr[1]

;Получаем массив структуры каталогов в папке "CutDir" (из переменной $Dir)
$DirsArray = _DirListToArray($Dir)

;Получаем массив со списком файлов которые не нужно удалять (из файл от переменной $ExcludeListFile)..
_FileReadToArray($ExcludeListFile, $ExcludeListArr)

;Проходим по массиву структуры каталогов, получаем массив со списком файлов в каждом каталоге, и удаляем файлы не находящиеся в списке.
For $i = 1 To UBound($DirsArray)-1
;Получаем массив со списком файлов текущего каталога...
$InDirFilesArr = _FileListToArray($DirsArray[$i], "*.*", 1)

;Если в текущем каталоге найдены файлы, то проходимся по массиву и ищем текущий элемент в массиве списка исключенных файлов.
If IsArray($InDirFilesArr) Then
For $iF = 1 To UBound($InDirFilesArr)-1
;Поиск элемента (текущего файла включая полный путь)...
$SearchInArr = _ArraySearch($ExcludeListArr, $DirsArray[$i] & "\" & $InDirFilesArr[$iF])
;Если не найден, то удаляем файл...
If $SearchInArr = -1 Then FileDelete($DirsArray[$i] & "\" & $InDirFilesArr[$iF])
Next
EndIf
Next

;Функция возвращает массив структуры подкаталогов
Func _DirListToArray ($sPath)
Local $i, $j, $rlist[1]=[0], $blist, $alist=_FileListToArray ($sPath, '*', 2)
If IsArray ($alist) Then
For $i=1 To $alist [0]
_ArrayAdd ($rlist, $sPath & "\" & $alist [$i])
$blist = _DirListToArray ($sPath & "\" & $alist [$i])
If $blist[0]>0 Then
For $j=1 To $blist [0]
_ArrayAdd ($rlist, $blist [$j])
Next
EndIf
Next
EndIf
$rlist [0] = UBound ($rlist) - 1
Return $rlist
EndFunc

P.S
Я не тестировал скрипт, написал на скорую руку.

VelDmi
17-05-2007, 22:30
Creat0R
Уфф, мне не дано такое понять...
Написал сам через попу, но работает вроде:

RunWait (@COMSPEC & ' /c fsum.exe -r -d".\CutDir" *.* > sums.md5', @ScriptDir, @SW_HIDE)
;через эту прогу создается список файлов
$filesums = FileOpen(@ScriptDir& '\sums.md5', 0)
If $filesums = -1 Then
MsgBox(0, "Ошибка.", "Не могу открыть файл sums.md5")
Exit
EndIf
$filesums2 = FileOpen(@ScriptDir& '\sums2.md5', 0)
If $filesums2 = -1 Then
MsgBox(0, "Ошибка.", "Не могу открыть файл sums2.md5")
Exit
EndIf

While 1
$i = FileReadLine($filesums2)
If @error = -1 Then ExitLoop
$Count2 = $Count2 + 1
WEnd
FileClose($filesums2)

While 1
$line = FileReadLine($filesums)
If @error = -1 Then ExitLoop
If StringLeft ($line, 1) = ';' Then ContinueLoop
$filesums2 = FileOpen(@ScriptDir& '\sums2.md5', 0)
$Del = 1
For $i = 1 To $Count2
If $line = FileReadLine($filesums2) Then
$Del = 0
ExitLoop
EndIf
Next
If $Del = 1 Then FileDelete ($CutDir & StringTrimLeft( $line, 34 ))
FileClose($filesums2)
WEnd
FileClose($filesums)

теперь попробую твой способ.

Creat0R
17-05-2007, 23:41
VelDmi
Уфф, мне не дано такое понять...
Время покажет, я так тоже раньше думал, если бы мне, где то пол года назад показали подобный код, я бы точно также отреагировал ;)

Вот превратил всё это дело в функцию, теперь проверил работоспособность, вроде работает :)

Переменная $ExcludeList также может иметь сразу список файлов для исключения, вот пример - $ExcludeList = "C:\CutDir\test.txt|C:\CutDir\test2.txt" - файлы C:\CutDir\test.txt и C:\CutDir\test2.txt не будут тронуты функцией. Также можно передать во второй параметр функции _DeleteFilesWithExcludes() массив содержащий список файлов для исключения, ну и как показанно в примере, поддерживается и обычный путь к файлу, с которого будет браться список исключении.

При успешной операции, возвращает @extended, макрос будет содержать число файлов которые были удалены (именно удалены, не просто количество файлов в соответствии со списком исключении).


#include <Array.au3>
#include <File.au3>

$Dir = @ScriptDir & "\CutDir"

;Эта переменная может быть массивом, полным списком файлов исключении (разделённый через |),
;а так-же это можт быть путь к файлу содержащий список файлов которые будут исключены при удалении.
$ExcludeList = @ScriptDir & "\file.txt" ;Пример переменной - "c:\CutDir\test.txt|c:\CutDir\test2.txt" ... и т.д

_DeleteFilesWithExcludes($Dir, $ExcludeList)

If Not @error Then MsgBox(262144+64, "Finish", "Было удалено <" & @extended & "> файлов")

;Функция для удаления файлов из всех подкаталогов заданного каталога, в соответствии со списком исключении.
Func _DeleteFilesWithExcludes($sPath, $ExcludeList)
Local $ExcludeListArr[1], $Extended = 0
;Если не существует каталога (в котором следует производить удаление) или переменная $sPath не является каталогом,
;возвращаем ошибку №1.
If Not StringInStr(FileGetAttrib($sPath), "D") Then Return SetError(1, 0, 0)
;Получаем массив структуры каталогов в папке "CutDir" (из переменной $Dir)
Local $DirsArray = _DirListToArray($sPath)

If Not IsArray($ExcludeList) And FileExists($ExcludeList) Then
;Получаем массив со списком файлов которые не нужно удалять (из файл от переменной $ExcludeList)..
_FileReadToArray($ExcludeList, $ExcludeListArr)
ElseIf IsString($ExcludeList) And StringInStr($ExcludeList, "|") Then
;Превращаем переменную в массив (разделяя этим символом |)
$ExcludeListArr = StringSplit($ExcludeList, "|")
ElseIf IsArray($ExcludeList) Then
;Присваиваем внутреннему массиву (ранее созданному) то же значение что и у массива $ExcludeList
$ExcludeListArr = $ExcludeList
Else
;Не предвиденная ошибка, передана пустая переменная или неверный формат массива/переменной - возвращаем ошибку №2.
Return SetError(2, 0, 0)
EndIf

;Получаем массив со списком файлов корневого каталога ($sPath)...
$RootFilesArr = _FileListToArray($sPath, "*.*", 1)
If IsArray($RootFilesArr) Then
For $iR = 1 To UBound($RootFilesArr)-1
;Поиск элемента (текущего файла включая полный путь)...
$SearchInArr = _ArraySearch($ExcludeListArr, $sPath & "\" & $RootFilesArr[$iR])
;Если не найден, то удаляем файл...
If $SearchInArr = -1 Then $Extended += FileDelete($sPath & "\" & $RootFilesArr[$iR])
Next
EndIf

;Проходим по массиву структуры каталогов, получаем массив со списком файлов в каждом каталоге,
;и удаляем файлы не находящиеся в списке.
For $i = 1 To UBound($DirsArray)-1
;Получаем массив со списком файлов текущего каталога...
$InDirFilesArr = _FileListToArray($DirsArray[$i], "*.*", 1)

;Если в текущем каталоге найдены файлы, то проходимся по массиву и ищем текущий элемент в массиве списка исключенных файлов.
If IsArray($InDirFilesArr) Then
For $iF = 1 To UBound($InDirFilesArr)-1
;Поиск элемента (текущего файла включая полный путь)...
$SearchInArr = _ArraySearch($ExcludeListArr, $DirsArray[$i] & "\" & $InDirFilesArr[$iF])
;Если не найден, то удаляем файл...
If $SearchInArr = -1 Then $Extended += FileDelete($DirsArray[$i] & "\" & $InDirFilesArr[$iF])
Next
EndIf
Next
Return SetError(0, $Extended, 1)
EndFunc

;Функция возвращает массив структуры подкаталогов
Func _DirListToArray ($sPath)
Local $i, $j, $rlist[1]=[0], $blist, $alist=_FileListToArray ($sPath, '*', 2)
If IsArray ($alist) Then
For $i=1 To $alist [0]
_ArrayAdd ($rlist, $sPath & "\" & $alist [$i])
$blist = _DirListToArray ($sPath & "\" & $alist [$i])
If $blist[0]>0 Then
For $j=1 To $blist [0]
_ArrayAdd ($rlist, $blist [$j])
Next
EndIf
Next
EndIf
$rlist [0] = UBound ($rlist) - 1
Return $rlist
EndFunc

Creat0R
19-05-2007, 06:42
Я как то сообщил на офф. форуме о серъёзном баге (http://www.autoitscript.com/forum/index.php?s=&showtopic=44134&view=findpost&p=328695), наверняка многие из вас его заметили, его трудно не заметить...

Разработчики приписали моему репорту NOBUG (не бага), хотя я не согласен :).

Баг заключается в следующем - 1) В момент перетаскивания окна ГУИ скрипта по его заголовку, 2) в момент изменения размера ГУИ окна, 3) при зажатии одной из кнопок закрытия/Сворачивания/Разворачивания окна, 4) а также и при открытии любых меню гуи (как главных так и контекстных), и в добавок, 5) при открытии меню из иконки в левом верхнем углу (значок программы) - Скрпит полностью останавливается на время указанных действии.

Мне кажется что это не должно происходить, разработчики свернули вину на Windows, мол это баг самой ОС, хотя не смотря на это, некоторые программы (http://opera.com) (и кстати, написанные тоже на C++) умудряются "не останавливать" свою работу на момент перетаскивания их окна или любой другой указанной ранее “дейтяльности” со стороны юзера.

Вобщем я решил (http://www.autoitscript.com/forum/index.php?showtopic=46214) эту задачку (надеюсь временно, желательно увидеть решение этой проблеме со стороны разработчиков) вот таким образом:


#include <GuiDragable.au3>
#include <Guiconstants.au3>

Dim $LeftPos

$GuihWnd = _GuiDragableCreate("Drag GUI Demo", 300, 150, -1, -1)
GUISetBkColor(0xffffff)

$ExampleLabel = GUICtrlCreateLabel("Drag Me (but not by controls) ;)", 0, 60, 250, 20)
GUICtrlSetFont(-1, 12, 600, 0, "Tahoma")
GUICtrlSetColor(-1, 0xDD0000)

AdlibEnable("Example", 50)

DllCall("User32.dll", "long", "AnimateWindow", "hwnd", $GuihWnd, "long", 300, "long", 0x10)
GUISetState()

While 1
Sleep(10)
WEnd

Func Example()
$LeftPos += 3
GUICtrlSetPos($ExampleLabel, $LeftPos, 60)
If $LeftPos >= 300 Then $LeftPos = -250
EndFunc


Нужно в папке со скриптом иметь этот файл - http://www.autoitscript.com/forum/index.php?act=attach&type=post&id=14661

При перетаскивании окна (при зажатии мышки в любом места окна за исключением контролов, ведь мы же хотим иметь возможность нажимать на кнопки и т.п.), бегущая строка по прежнему "продолжает бежать" :) - это свидетильствует о том что скрипт не остановлен.

Creat0R
21-05-2007, 21:00
Метод позволяющий запускать код VBS не создавая временных файлов:


$ProcessName = "AutoIt3.exe"

$RetArr = _ProcessExistsVbs($ProcessName)

If IsArray($RetArr) Then MsgBox(64, "", "Process <" & $RetArr[1] & "> exists." & @LF & @LF & _
"The returned PID is: " & $RetArr[2] & @LF & @LF & _
"Returned Executable Path is: " & @LF & $RetArr[3] & @LF & @LF & _
"Command Line of executed process is: " & @LF & $RetArr[4])

;Функция возвращает массив содержащий имя процесса, его уникальный идентификатор (PID), путь запуска, и коммандную строку запуска.
;В случае если указанный процесс не существует, возвращается 0.
Func _ProcessExistsVbs($ProcName)
Local $Code = ""
$Code &= 'Function ProcessExists(ProcessName)' & @LF
$Code &= ' Set Processes = GetObject("winmgmts://localhost")' & @LF
$Code &= ' Set myProcEnum = Processes.ExecQuery("select * from Win32_Process")' & @LF
$Code &= ' For Each Proc In myProcEnum' & @LF
$Code &= ' If StrComp(Proc.Name, ProcessName, 1) = 0 Or StrComp(Proc.ProcessID, ProcessName, 1) = 0 Then' & @LF
$Code &= ' Dim RetArr' & @LF
$Code &= ' RetArr = Array(4, Proc.Name, Proc.ProcessID, Proc.ExecutablePath, Proc.CommandLine)' & @LF
$Code &= ' ProcessExists = RetArr' & @LF
$Code &= ' Exit Function' & @LF
$Code &= ' End If' & @LF
$Code &= ' Next' & @LF
$Code &= ' ProcessExists = 0' & @LF
$Code &= 'End Function'

Local $VbsObj = ObjCreate("ScriptControl")
If @error Then Return SetError(1, 0, -1)

$VbsObj.Language = "vbscript"
$VbsObj.AddCode($Code)
Local $RetArr = $VbsObj.Run("ProcessExists", $ProcName)
If $RetArr = 0 Then Return SetError(0, 0, 0)
Return $RetArr
EndFunc

amel27
22-05-2007, 12:44
Creat0Rкак то сообщил на офф. форуме о серъёзном багеДумаю проблема в AdLib, так как это чисто AutoIT-овский планировщик и он отключается на время передачи управления системному коду (через DLLCall), поэтому ИМХО нужно либо избегать таких вызовов, либо использовать модель GUIRegisterMsg, которая поддерживается самой системой... правда в этом случае прорисовку придется выполнять в основном цикле, а обработку нажатий наоборот в процедуре.

Метод позволяющий запускать код VBS не создавая временных файлов:Весьма забавный трюк, только какая в нем польза, если возможности AutoIT на порядок шире VBS?.. Шутка. ;)

Diamond
22-05-2007, 14:31
Creat0R
Отлично! Очень интересный способ! :UP:
Даже не подозревал что существует такой объект...
Я выяснил что "MSScriptControl.ScriptControl" предназначен также и для JavaScript'ов. VbScript'ы у меня запускаются а вот с JavaScript'ами почему-то ничего не выходит.
Привожу два упрощённых примера для сравнения:
VbScript:;~ Доступ к контекстному меню папок:
Dim $Code
$Code = 'Set objShellApp = CreateObject ("Shell.Application")' & @LF & _
'Set objFolderItem = objShellApp.NameSpace("C:\").Self' & @LF & _
'Set objFIVs = objFolderItem.Verbs' & @LF & _
'MsgBox objFIVs.Count,0,"Кол-во элементов:"' & @LF & _
'For Each ThisCheck in objFIVs' & @LF & _
' If ThisCheck.Name = "&Найти..." Then' & @LF & _
' ThisCheck.DoIt' & @LF & _
' End If' & @LF & _
'MsgBox ThisCheck.Name' & @LF & _
'Next'

$VbsObj = ObjCreate("MSScriptControl.ScriptControl")
$VbsObj.Language = "VbScript"
$VbsObj.AddCode($Code)JavaScript:;~ Диалог открытия файлов:
Dim $Code
$Code = 'var WshShell = WScript.CreateObject ("WScript.Shell");' & @LF & _
'var objDialog = new ActiveXObject("UserAccounts.CommonDialog");' & @LF & _
'objDialog.Filter = "All Files|*.*";' & @LF & _
'objDialog.InitialDir = "C:\\";' & @LF & _
'intResult = objDialog.ShowOpen();' & @LF & _
'if (intResult) WshShell.PopUp(objDialog.FileName);'

$VbsObj = ObjCreate("MSScriptControl.ScriptControl")
$VbsObj.Language = "JScript"
$VbsObj.AddCode($Code) Может я что-то делаю не так? :dont-know

Creat0R
22-05-2007, 21:54
amel27
Думаю проблема в AdLib
Я в этом не уверен, это не только связанно с этой процедурой, она чисто для демонстрации бага(?). Мне кажется останавливается весь скрипт целиком, и вот вроде этому доказательство...


Opt("GuiOnEventMode", 1)

GUICreate("Test")
GUISetOnEvent(-3, "Quit")

GUICtrlCreateMenu("Test Menu")

GUISetState()

While 1
Sleep(10)
ConsoleWrite("! test")
WEnd

Func Quit()
Exit
EndFunc


Тащим ГУИ, или просто нажимаем на, вроде полусозданное меню, и в консоль ничего не пишется....

нужно либо избегать таких вызовов, либо использовать модель GUIRegisterMsg, которая поддерживается самой системой
А возможно ли таким методом запустить выполнение определённх операции по заданному интервалу? (аналогично Adlib). Хотя сомневаюсь что это поможет, скрипт всё ровно будет останавливаться (полагаю).

Весьма забавный трюк, только какая в нем польза, если возможности AutoIT на порядок шире VBS?
Динамический код однако ;) - Можно таким образом создавать функции в обычном файле, чтобы даже закомпилированный скрипт мог их обрабатывать - ну это как опция вообще то, а замысел в том, что иногда функция на VBS сработает куда быстрее чем AutoIt'овская (в некоторых случаях), основная идея не моя, это я "украл" на офф. форуме, там для сортировки ListView (при чём очень быстрой) используется именно такой метод. А я всего лишь по такому же методу сделал набросок для функции ProcessExists() (которую недавно написал на VBS), и в качестве демонстрации использовал её в коде :).

Creat0R
22-05-2007, 22:07
Diamond
VbScript'ы у меня запускаются а вот с JavaScript'ами почему-то ничего не выходит.
Я если честно с JavaScript никогда не работал, скорее всего нужен либо другой объект, либо другой синтаксис для этого объекта, у меня подобные ошибки выводились когда писал неверный синтаксис в коде VBS, видимо для обработки кода нужен точный синтаксис, иначе действие для объекта не релевантное.

amel27
23-05-2007, 04:27
Creat0RМне кажется останавливается весь скрипт целикома я и не оспаривал, только предложил обходной путь :)
А возможно ли таким методом запустить выполнение определённх операции по заданному интервалу? из самого скрипта нет, ты веть сам это показал выше ;) ... только извне
сомневаюсь что это поможет, скрипт всё ровно будет останавливатьсяне будет, так как вызовы функций выполняет система а не скрипт - проверено!

VelDmi
23-05-2007, 04:57
Мне кажется останавливается весь скрипт целиком, и вот вроде этому доказательство...
Если создать в autoit прогресс бар и нажать на него мышкой, то он остановится.
Если во время архивации WINRAR нажать на окно мышкой архивация остановится! Мне кажется тут дело в системе, а не в Autoit.

Creat0R
23-05-2007, 05:52
amel27
не будет, так как вызовы функций выполняет система а не скрипт - проверено!
Ок, а как это реализовать? :shuffle: (хотябы набросок того как оно будет запускать к примеру каждые 100 мс определённую функцию).

VelDmi
Если создать в autoit прогресс бар и нажать на него мышкой, то он остановится.
Нажать мышкой на сам прогресс? у меня не останавлвиается :idontnow: .

Если во время архивации WINRAR нажать на окно мышкой архивация остановится!
Это да, видимо когда писали Winrar это не предусмотрели :).

Мне кажется тут дело в системе, а не в Autoit.
Как раз то нет, я об этом и твердил (http://forum.oszone.net/thread-60616-92.html#post588620)...

разработчики свернули вину на Windows, мол это баг самой ОС, хотя не смотря на это, некоторые программы (http://opera.com/) (и кстати, написанные тоже на C++) умудряются "не останавливать" свою работу на момент перетаскивания их окна или любой другой указанной ранее “дейтяльности” со стороны юзера.

Добавлено:
Т.е получается, что это ответственность программиста предусматривать подобные вещи, а не системы...

TERMINAL
23-05-2007, 16:24
Хотел написать автоустановку разных антивирусов-написал, но проблема вот такая- каждый антивирус заканчивает свою установку по разному и у меня проблема с теми которые начинают сразу после установки сканить диски. Паузу ставить безсмыслено, а вот с процессами поработать можно было было. Какой скрипт лучше написать, если при сканировании антивир процесс грузит примерно до 40 процентов, а когда закончен равен нулю =0 (я так думаю) !? Или может кто-то с этим сталкивался? Свои мысли может изложить...




© OSzone.net 2001-2012