1
Добавлена тема оформления "Clickermann" для кода с подсветкой синтаксиса. Выбирается из выпадающего списка "Код" (рядом с "цвет", "размер" и "шрифт") в режиме редактирования поста. Либо просто BB-тегом "code=clickermann"
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
CALL("data.dll", 7)
А вот код dll:library data;
uses
Windows,
SysUtils,
DateUtils;
//------------------------------------------------------------------------------
// Основное тело функции, идет на экспорт, вызывается из кликера
function execute( _mas: pInteger; _size: Integer): Integer; export; stdcall;
type
pIntArr = array[0..0] of Integer;
var
S: Integer;
Res: TDateTime;
gmd: string;
begin
S := // Как сюда присвоить параметр, отправленный кликером - "7"?
Res:= IncDay(Now, S); // увеличиваем текущую дату на S дней
result := StrToInt(Copy (DateToStr(Res), 7, 4)+Copy (DateToStr(Res), 4, 2)+Copy (DateToStr(Res), 1, 2));
end;
//------------------------------------------------------------------------------
// список экспорта
exports execute;
begin
// тело пусто
end.
Как в dll-ке, переменной "S", передать параметр из скрипта - "7"?
На строкуCode: (clickermann) [Select]EXECUTE("mspaint.exe", "screens\Мир()\волшебный город\БР.bmp")
выдаёт ошибку - Файл "F:\scripts\Dragon Knight\WM New x32\screens\Мир()\волшебный.png" не найден...
Старайся пути делать без пробелов. В винде если путь содержит пробелы, он должен заключаться в кавычки. Это не прихоть кликера, Cmd/bat так работает.
Поэтому такие пути нужно собирать с кавычкамиCode: (clickermann) [Select]EXECUTE("mspaint.exe", STRCONCAT(CHAR(34), "screens\Мир()\волшебный город\БР.bmp", CHAR(34)))
Запустить можно только исполняемый файл. Bmp - не исполняемый.
Может ты хотел открыть файл в паинте?Code: (clickermann) [Select]EXECUTE("mspaint.exe", "ТвойФайл.bmp")
EXECUTE("mspaint.exe", "screens\Мир()\волшебный город\БР.bmp")
выдаёт ошибку - Файл "F:\scripts\Dragon Knight\WM New x32\screens\Мир()\волшебный.png" не найден...
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.
CALL("loading_memory.dll")
LOGWRITE ("Загруженность памяти = ",$_return1,"%")
WAITMS(50)
$nuzhniy_cvet_pikselya = // подставляем цвет пикселя
$minimalnoe_kolichestvo_piksley = // подставляем нужное, минимальное количество пикселей
GETSCREEN ($x1,$y1, $x2,$y2)
SCANPXL($ARR_SCAN, $x1,$y1, $x2,$y2, $nuzhniy_cvet_pikselya)
$kolichestvo_piksley = ARRSIZE($ARR_SCAN)/2
UNDEFINE($ARR_SCAN)
IF($kolichestvo_piksley >= $minimalnoe_kolichestvo_piksley)
IF($click = 0)
// кликаем, куда надо
$click = 1
END_IF
else
$click = 0
END_IF
WAITMS(50)
В ней куча окошек. Если одно из них активно(далее окноА) - надо запустить скрипт.
можно ли узнать на каком окне фокус в терминале не анализом цвета
А че пропал-то? Вкурил - для чего все это? Я только с утра вкурил... На сколько редко ошибается? Сколько поинтов максимально собирал? ))Я уже уходя с работы тему увидел. Набросал скрипт, потестил, сделал ещё 3 варианта и свалил домой. А дома у меня выходные поэтому такие конкурсы не для меня. Нафиг это олимпиадное программирование на время.
Изучи вот это: (правда примечание тут ошибочное)Code: (clickermann) [Select]if (FExists($path)=0) // Тут у нас по сути получается - if (FExists("screens\Цех")=0). Это условие "звучит" так - "Если этих папок нет"
Жаль, что когда тут просят помощи, в итоге приходится тратить время, на ссылки в справку кликера, которую вы похоже даже не открываете. Я в свое время хоть и ставил на уши этот форум своими вопросами, эту справку читал и перечитывал раз 300 и потом уже доставал своими вопросами о том, что я никак не мог понять...
Причина очень простая. Ты не указал версию кликера под которую писал скрипт. Нужно всегда указывать версии ПО, особенно если используешь не релизные версии.
FExists появилась только в 4.14 (и FCREATE там же), а версия 4.14 с бэты так и не вылезла. Человек наверняка использует версию 4.13.