5peciali5t
Advanced Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору имеется задача: понизить потребление оперативной памяти различными процессами. где то в интернете был нарыт скрипт, который это делает применительно к указанным в нем процессам скрипт не учитывает множествественность процессов и понижает потребление памяти только первыму попавшимуся в списке процессу, игнорируя остальные (как например несколько открытых окон internet explorer порождает несколько процессов iexplore.exe или масса жадных системных сервисов svchost.exe) ищутся грамотные в языке autoit люди, которые способны довести скрипт до состояния, в котором он будет понижать потребление памяти, учитывая множественность процессов. Код: #NoTrayIcon Global Const $interval = 2000 ; Global $list = "Skype.exe|skypePM.exe|firefox.exe|opera.exe|iexplore.exe|icq.exe|svchost.exe|msmpeng.exe|msseces.exe|explorer.exe" Global $processlist = StringSplit($list, "|") While 1 For $i = 1 To UBound($processlist) - 1 $pid = ProcessExists($processlist[$i]) If $pid Then _ReduceMemory($pid) Next _ReduceMemory(); Sleep($interval) WEnd Func Bye() Exit EndFunc ; Func _ReduceMemory($i_PID = -1) If $i_PID <> -1 Then Local $ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $i_PID) Local $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', $ai_Handle[0]) DllCall('kernel32.dll', 'int', 'CloseHandle', 'int', $ai_Handle[0]) Else Local $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', -1) EndIf Return $ai_Return[0] EndFunc ; | обращаться в аську 560361 |