Намутил скрипт для одной игры, запущенной на виртуальной машине. Скрипт полностью сбоеустойчив и практически вечен - можно месяц не заглядывать в виртуалку, а потом открыть и "снимать сливки". Но столкнулся с одной проблемой... Чем дольше открыта игра и чем больше в ней производится действий, тем больше она раздувается и тем больше занимает рабочую память, от чего игра начинает лагать и так далее. Появилась надобность в контроле рабочей памяти и, исходя из полученных данных, решение - перезапустить игру, или даже винду. В связи с этим, намутил dll-ку...
https://disk.yandex.ru/d/0mNmOUFZ6eLDCwИсходный код dll-ки...
library loading_memory;
uses
Windows,
SysUtils;
//------------------------------------------------------------------------------
// Основное тело функции, идет на экспорт, вызывается из кликера
function execute( _mas: pInteger; _size: Integer): Integer; export; stdcall;
type
pIntArr = array[0..0] of Integer;
var
Status: TMemoryStatus;
begin
Status.dwLength := sizeof(TMemoryStatus);
GlobalMemoryStatus(Status);
result := Status.dwMemoryLoad; // присваиваем возвращаемое значение
end;
//------------------------------------------------------------------------------
// список экспорта
exports execute;
begin
// тело пусто
end.
Вызов dll-ки в Clickermann-е...
CALL("loading_memory.dll")
LOGWRITE ("Загруженность памяти = ",$_return1,"%")
WAITMS(50)