Вверх ↑
Разработчик
Ответов: 26324
Рейтинг: 2148
#1: 2013-05-07 01:09:06 ЛС | профиль | цитата
nickware писал(а):
у меня используется VBScript для получения списка процессов

Проблема именно в этом модуле

Add(MainForm,8714316,259,161)
{
Width=668
Height=431
Position=1
link(onCreate,14387762:doTimer,[])
}
Add(Timer,14387762,336,175)
{
link(onTimer,11484304:doWork,[])
}
Add(StyleXP,1691086,259,126)
{
}
Add(VBJScript,11484304,406,175)
{
WorkPoints=#6:doWork|
EventPoints=#7:onEvent|
Script=#68:'*******************************************************************|18:' Имя: ProcessInfo|16:' Язык: VBScript|47:' Описание: Вывод свойств запущенных процессов |68:'*******************************************************************|15:Option Explicit|0:|22:Sub doWork(Data,Index)|22:' Объявляем переменные|38:Dim strComputer ' Имя компьютера|45:Dim strNamespace ' Имя пространства имен|48:Dim objService ' Объект SWbemServices |56:Dim colProcesses ' Коллекция экземпляров класса WMI|41:Dim objProcess ' Элемент коллекции|45:Dim strResult ' Результирующая строка|39:Dim WshShell ' Объект WshShell|44:Dim theNotepad ' Объект WshScriptExec|52:Dim tab ' Разделитель свойств в строке|0:|21:' Объявляем константы|30:Const wbemFlagForwardOnly = 32|36:Const wbemFlagReturnImmediately = 16|0:|43:' Присваиваем начальные значения переменным|17:strComputer = "."|27:strNamespace = "Root\CIMV2"|14:strResult = ""|9:tab = ";"|0:|38:' Подключаемся к пространству имен WMI|76:Set objService = GetObject("WinMgmts:\\" & strComputer & "\" & strNamespace)|0:|117:Set colProcesses = objService.ExecQuery("SELECT * FROM Win32_Process",,wbemFlagReturnImmediately+wbemFlagForwardOnly)|35:For Each objProcess In colProcesses|47: strResult = strResult & objProcess.Name & tab|57: strResult = strResult & objProcess.ExecutablePath & tab|70: strResult = strResult & ConvDateTime(objProcess.CreationDate) & tab|54: strResult = strResult & objProcess.Priority & VbCrLf|23: Sys.onEvent strResult|4:Next|7:End Sub|0:|34:Function ConvDateTime(strDateTime)|11:Dim strTemp|32:strTemp = Mid(strDateTime, 1, 4)|23:strTemp = strTemp & "/"|42:strTemp = strTemp & Mid(strDateTime, 5, 2)|23:strTemp = strTemp & "/"|42:strTemp = strTemp & Mid(strDateTime, 7, 2)|23:strTemp = strTemp & " "|42:strTemp = strTemp & Mid(strDateTime, 9, 2)|23:strTemp = strTemp & ":"|43:strTemp = strTemp & Mid(strDateTime, 11, 2)|23:strTemp = strTemp & ":"|43:strTemp = strTemp & Mid(strDateTime, 13, 2)|23:If IsDate(strTemp) Then|39: ConvDateTime = FormatDateTime(strTemp)|4:Else|18: ConvDateTime = ""|6:End If|12:End Function|
UseName=0
}


Запусти ПО и диспетчер задач, посмотри, как оперативно пожирается память твоим приложением
------------ Дoбавленo в 01.09:
Штатный пример на ProcessInfo, построенный также на технологии WMI, не пожирает память при подключении таймера
карма: 22

0