Что нового

[Процессы] Количество памяти используемое приложением.

Black_Hole

Знающий
Сообщения
126
Репутация
11
Что надо написать в $x что бы показало сколько памяти использует приложение.

Код:
Global $x = ????
Global $y = ProcessExists
Global $z = "calc.exe"

MsgBox (0,"",($x($y($z))))
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
Black_Hole
http://autoit-script.ru/index.php/topic,6844.0.html
Поиском такое нетрудно найти
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
ты не сможешь применить функцию при вызове переменной. В переменную будет записано значение возвращаемое функцией при инициализации, тоесть в этой строке:
Код:
Global $y = ProcessExists

Но и эта строка выдаст тебе ошибку т.к. ты не указал параметры функции ProcessExists. Параметром является имя процесса. Более того, кроме PID процесса эта функция может вернуть только 0, если такого процесса не существует. Ничего более.
 
Автор
B

Black_Hole

Знающий
Сообщения
126
Репутация
11
WSWR тему найти нереально содержит ошибку в названии :smile: но пинок был сделан в правильном направлении :smile:
Belfigor функция определяется и передается без ошибок :smile:

Решение:
Код:
Global $x = ProcessGetStats
Global $y = ProcessExists
Global $z = "calc.exe"
MsgBox (0,"",($x($y($z)))[0])

Код:
MsgBox (0,"",StringFormat('memory:\t%.3f mb', ($x($y($z)))[0]/1024/1024))
;Отобразит в формате (memory: 123.456 mb)
 

Pelerin

Осваивающий
Сообщения
81
Репутация
23
Привет!
Black_Hole, этот вариант не работает - выдает ошибку на этапе проверки синтаксиса.
1. Массив возвращаемый "ProcessGetStats" не передается по ссылке, а только через переменную.
2.
Код:
Global $y = ProcessExists
Тоже выдает ошибку синтаксиса функции (нет скобок, нет аргументов)
3. Однозначно работает так:
Код:
Global $z = "calc.exe", $a[1]
If ProcessExists($z) Then
	$a = ProcessGetStats($z)
	MsgBox(0, @ScriptName, StringFormat('memory:\t%.2f kb', $a[0]/1024))
EndIf
 
Автор
B

Black_Hole

Знающий
Сообщения
126
Репутация
11
В версии AutoIt 3.3.9.5 ошибка не появляется, в более ранних ероррит ;)
Код:
Global $y = ProcessExists

Решение:
Код:
Global $x = ProcessGetStats(ProcessExists("calc.exe"))
MsgBox (0,"",$x[0])
 
Верх