Помощь - Поиск - Пользователи - Календарь
Полная версия: Плагин для работы с файлами
UoKit.com Форумы > Кликер > UO Pilot > Плагины и доп. ПО
Cockney
Плагин дает возможность работать с файлами побайтово.


Актуальная версия : Нажмите для просмотра прикрепленного файла
Минимальная версия пилота : 2.36

Описание функций :

CreateFile

Код
set $a FilesAPI.CreateFile (<имя файла>) - Создает файл и автоматически дает доступ к чтению/записи.


Возвращаемое значения :

-1 - ошибка создания файла
<рандомное число> - хендл файла

OpenFile

Код
set $a FilesAPI.OpenFile (<имя файла> <режим открытия>) - Открывает существующий файл в заданном 
режиме.


Допустимые значения <режим открытия> :

Read
Write
ReadWrite

Возвращаемые значения :

-1 - ошибка открытия файла
-2 - <режим открытия> либо задан некорректно либо вообще не задан
<рандомное число> - хендл файла

CloseFile

Код
set $a FilesAPI.CloseFile (<хендл файла>) - Закрывает файл.


Возвращаемые значения :

-1 - ошибка закрытия ли неправильный хендл
1 - успешно

SetFilePos

Код
set $a FilesAPI.SetFilePos (<хендл файла> <смещение> <позиция>) - Устанавливает указатель в файле на нужное <смещение> относительно <позиция>


Допустимые значения <смещение> :


Любое неотрицательное число (желательно не превышать общий размер файла).


Допустимые значения <позиция> :



FILE_CURRENT - текущая позиция
FILE_BEGIN - начало файла
FILE_END - конец файла

Возвращаемые значения :

-1 - ошибка установки смещения
-2 - некорректное <смещение>
-3 - неккоректное <позиция>
<число> - новая позиция в файле

SetWriteMode

Код
set $a FilesAPI.SetWriteMode (<хендл файла> <режим>) - устанавливает порядок записи байт.


Допустимые значения <режим> :

LE - litle-endian порядок
BE - big-endian порядок

Возвращаемые значения :
-1 - ошибка, возможно некорректный хендл файла
-2 - <режим> либо не задан либо некорректен
1 - успешно

Примечания :

SetWriteMode влияет только на работу функций WriteWORD, WriteDWORD. Остальные функции записи

игнорируют этот параметр.

SetReadMode

Код
set $a FilesAPI.SetReadMode (<хендл файла> <режим>) - устанавливает порядок чтения байт.


Допустимые значения <режим> :

LE - litle-endian порядок
BE - big-endian порядок

Возвращаемые значения :
-1 - ошибка, возможно некорректный хендл файла
-2 - <режим> либо не задан либо некорректен
1 - успешно

Примечания :

SetReadMode влияет только на работу функций ReadWORD, ReadDWORD. Остальные функции чтения

игнорируют этот параметр.

WriteBYTE

Код
set $a FilesAPI.WriteBYTE (<хендл файла> <байт>) - пишет байт в файл в текущую позицию.


Допустимые значения <байт> :

Все числа в диапозоне 0..255.

Возвращаемые значения :

-1 - ошибка записи или некорректный хендл
-2 - некорректный параметр <байт>
1 - успешно

WriteWORD

Код
set $a FilesAPI.WriteWORD (<хендл файла> <слово>) - запись в файл слова в текущую позицию.


Допустимые значения <слово> :

Число, не превышающее 65535.

Возвращаемые значения :

-1 - ошибка записи или неверный хендл.
-2 - некорректный параметр <слово>.
1 - успешно

WriteDWORD

Код
set $a FilesAPI.WriteDWORD (<хендл файла> <дворд>) - запись двойного слова в файл в текущую 
позицию.


Допустимые значения <дворд> :

Число, не превышающее 4294967295.

Возвращаемые значения :

-1 - ошибка записи или неверный хендл.
-2 - некорректный параметр <дворд>.
1 - успешно

WriteArrayOfByte(для версий <= 2.35)

Код
set $a FilesAPI.WriteArrayOfByte (<хендл файла> <байты>) - запись массива байт в файл в 
текущую позицию.


Допустимые значения <байты> :

Массив размерностью [1 N] элементов, содержащих числа в диапозоне 0..255.

Возвращаемые значения :

-1 - ошибка записи или неверный хендл
-2 - некорректный параметр <байты>
<число> - успешно. сколько фактически записано байт.

Примечания :

Перед вызовом функции необходимо установить разделитель элементов массива как пробел.

set delimiter ' '

WriteArrayOfByte(для версий >= 2.36)

Неготово.

ReadBYTE

Код
set $a FilesAPI.ReadBYTE (<хендл файла>) - чтение байта из файла с текущей позиции.


Возвращаемые значения :

-1 - ошибка чтения или неверный хендл.
<число> - успешно. прочитанный байт.

ReadWORD

Код
set %a FilesAPI.ReadWORD (<хендл файла>) - чтение слова из файла с текущей позиции.


Возвращаемые значения :

-1 - ошибка чтения или неверный хендл
Массив размером [1 2] в котором содержаться :
[1 1] - старший байт слова
[1 2] - младший байт слова

Примечания :

Порядок возвращаемых байт зависит от SetReadMode.

ReadDWORD

Код
set %a FilesAPI.ReadDWORD (<хендл файла>) - чтение двойного слова из файла с текущей позиции.


Возвращаемые значения :

-1 - ошибка чтения или неверный хендл
Массив размером [1 2] в котором содержаться :
[1 1] - старшее слово дворда
[1 2] - младшее слово дворда

Примечания :

Порядок возвращаемых слов зависит от SetReadMode.

ReadArrayOfByte (для версий <= 2.35)

Код
set $a FilesAPI.ReadArrayOfByte (<хендл файла> <кол-во байт>) - чтение массива байт из 
файла с текущей позиции.


Допустимые значения <кол-во байт> :

Неотрицательное число до 1048575.

Возвращаемые значения :

-1 - ошибка чтения или неверный хендл
-2 - некорректный параметр <кол-во байт>
Массив размером [1 <кол-во байт>]

ReadArrayOfByte (для версий >= 2.36)

Неготово.

LogicOR

Код
set $a FilesAPI.LogicOR (<операнд 1> <операнд 2>) - логическое ИЛИ.


Допустимые значения <операнд 1> и <операнд 2> :

Числа до 4294967295

Возвращаемые значения :

-1 - ошибка.
-2 - некорректный(е) параметры.
<число> - успешно. Результат.

LogicXOR

Код
set $a FilesAPI.LogicXOR (<операнд 1> <операнд 2>) - логичесоке исключающее ИЛИ.


Допустимые значения <операнд 1> и <операнд 2> :

Числа до 4294967295

Возвращаемые значения :

-1 - ошибка
-2 - некорректный(е) параметры
<число> - успешно. Результат.

LogicSHL

Код
set $a FilesAPI.LogicSHL (<операнд 1> <операнд 2>) - поразрядный сдвиг влево.


Допустимые значения <операнд 1> и <операнд 2> :

Числа до 4294967295

Возвращаемые значения :

-1 - ошибка
-2 - некорректный(е) параметры
<число> - успешно. Результат.

LogicSHR

Код
set $a FilesAPI.LogicSHR (<операнд 1> <операнд 2>) - поразрядный сдвиг вправо.


Допустимые значения <операнд 1> и <операнд 2> :

Числа до 4294967295

Возвращаемые значения :

-1 - ошибка
-2 - некорректный(е) параметры
<число> - успешно. Результат.

LogicAND

Код
set $a FilesAPI.LogicAND (<операнд 1> <операнд 2>) - логичесоке И.


Допустимые значения <операнд 1> и <операнд 2> :

Числа до 4294967295

Возвращаемые значения :

-1 - ошибка
-2 - некорректный(е) параметры
<число> - успешно. Результат.

LowBYTE

Код
set $a FilesAPI.LowBYTE (<слово>) - получение младшего байта из слова.


Допустимые значения <слово>:

Числа до 65535.

Возвращаемые значения :

-1 - ошибка
-2 - некорректный параметр <слово>
<число> - успешно. Результат.

HighBYTE

Код
set $a FilesAPI.HighBYTE (<слово>) - получение старшего байта из слова.


Допустимые значения <слово>:

Числа до 65535.

Возвращаемые значения :

-1 - ошибка
-2 - некорректный параметр <слово>
<число> - успешно. Результат.

LowWORD

Код
set $a FilesAPI.LowWORD (<дворд>) - получение младшего слова из дворд.


Допустимые значения <дворд>:

Числа до 4294967295.

Возвращаемые значения :

-1 - ошибка
-2 - некорректный параметр <дворд>
<число> - успешно. Результат.

HighWORD

Код
set $a FilesAPI.HighWORD (<дворд>) - получение страшего слова из дворд.


Допустимые значения <дворд>:

Числа до 4294967295.

Возвращаемые значения :

-1 - ошибка
-2 - некорректный параметр <дворд>
<число> - успешно. Результат.

BuildWORD

Код
set $a FilesAPI.BuildWORD (<байт> <байт>) - сборка двух байт в одно слово.


Допустимые значения <байт>'ов:

Числа 0..255.

Возвращаемые значения :

-1 - ошибка
-2 - некорректный параметр(ы) <байт>
<число> - успешно. Результат.

BuildDWORD

Код
set $a FilesAPI.BuildDWORD (<слово> <слово>) - сборка двух слов в один дворд.


Допустимые значения <слово>'ов:

Числа до 4294967295.

Возвращаемые значения :

-1 - ошибка
-2 - некорректный параметр(ы) <слово>
<число> - успешно. Результат.


Основные моменты :

1)Все параметры регистрозависимые.
2)Все параметры заключаются с обоих сторон символом '*'.
3)В параметрах допускаются пробелы, но они обрезаются(если с расположены с краев).
4)Все функции чтения/записи меняют значение позиции указателя в файле(указатель на текущий байт).
Имейте это ввиду и контролируйте функций SetFilePos.

5)После окончания работы с файлом необходимо его закрыть.
6)В один файл можно писать/читать из нескольких вкладок(особо не тестил, но вроде работает).
7)Маск. размер файла - 2Гб.
DarkMaster
А псевдо хекс прикрутишь?) Чтобы записывать типа: 0F15A6B45CC8A21E.

Надо будет еще посмотреть заголовки бмп бинарных и рисунки можно в скрипт прятать.
Cockney
Ах да, вместо десятичных чисел можно передавать в шестнадцатеричном виде. т.е. пропускаем через dec2hex и отдаем в плагин. и наоборот,когда получаем из плагина юзаем dec2hex. это имелось ввиду?

числа в 16х должны быть в формате пилота, с 0x.
DarkMaster
Цитата
это имелось ввиду?

Имелось ввиду длинную строку. У меня просто первая мысль которую давно хотел сделать: сейвить бмп внутри скрипта. Если под каждые 4 байта делать вызов, то это будет очень длинно.
Cockney
WriteArrayOfByte/Read....
DarkMaster
я походу слепой... два раза смотрел - находил только read...
cirus
Цитата
Плагин дает возможность работать с файлами побайтово.

Для чего это надо?
Cockney
Была надобность часто работать именно так с файлами. Лень было таскать с собой иде от нормального языка, сделал плагин. Поделился.
DarkMaster
Цитата
Для чего это надо?

Это надо. Сам хотел) Бывает необходимость поправить пару байт либо считать какой-нибудь формат далекий от синтаксиса загрузки массива.
Кстати из банального - это позволит сделать дописывание текста в файл.

А в чем проблема с плагином для версии 36+? Она вроде вниз полностью совместима при условии использования переноса строк "\r\n".
Cockney
в 36 будет другой механизм передачи и получения массивов с данными. Что-бы обойти все ограничения, в частности на 32кб возвращаемые.
DarkMaster
Это я догадываюсь. Я не понимаю почему длл в неизменном виде с 2.17 протоколом для 2.35 версии нельзя использовать на 2.36.
Cockney
Можно, только зачем? Это не сложно сделать. Но если есть вариант для 36, зачем использовать урезанный?
DarkMaster
Цитата
Это не сложно сделать.

Меня именно этот момент и интересует. Почему нужно что-то делать, чтобы оно заработало. Изначально планировалась максимальная совместимость вниз, чтобы подобных проблем не возникало. Где лажанули интересно...
Cockney
Так, по порядку.

1)Что бы обеспечить уж полную совместимость - ничего делать и не нужно. Все будет как сейчас.
2)Что мне хотелось бы поправить для 36 : передача данных по ссылке, а не строкой в плагин, что с уменьшит время работы функции при файлах > 10мб.

Выглядеть это будет так :

WriteReadArrayOfByte(<хендл файла> <адрес массива>)

Второй вариант, универсальный для обоих версий :

WriteReadArrayOfByte(<хендл файла> <адрес массива> <флажок, какой метод нужен>).

Ну а на возврат....
WKnight
А я тут случайно добавил команду вывода текста в файл 'write (<filename> <any text>)'. Файл всегда дописывается если существует. Подстроки '\n' и '\r' заменяются на символы с кодами 13 и 10 соответственно.
DarkMaster
оно уже есть?
write 1.txt 13\r\n
результата не дало...

Цитата
Ну а на возврат....

А в чем проблема возврата? Так же по ссылке указатели поправить и норм.
WKnight
Оно вчера вечером появилось, а сегодня на форум захожу, а оно вон оно как...
DarkMaster
Цитата
Оно вчера вечером появилось, а сегодня на форум захожу, а оно вон оно как...

Тем не менее надо понимать, что у тебя заточенная готовая функция, а тут микроскоп, который может гвозди любые забивать, но это микроскоп. И нечего тут офтопить)
Cockney
Микроскопом гвозди забивать ?!
-----------
Проблем с возвратом нет, надо копать.....как придумаю красивый вариант...но пока будет так : 32кб для 35 и неограниченно для 36.
DarkMaster
Цитата
Микроскопом гвозди забивать ?!

Если касательно дописывания текста в файл, то да) Посимвольно разделять строку по массиву, а потом передавать в плагин предварительно открыв файл, установив режим записи и выставив позицию записи, если рядом будет функция просто дописывающая текст, то да - микроскоп. Но это не значит, что микроскоп плох. Вся его радость в том, что ограничений нет. Ну разве что скорость парсинга строк пилота будет неизбежно тормозить процесс при объемной работе, но при этом работа будет сделана, причем любая.
Кстати не очень понятный момент, а как в версиях 2.35 и ниже передавать массив, если передача массива появилась только в 2.36? Или имеется ввиду, что мы записываем:
%arr[1 1] y
%arr[1 2] w
%arr[1 3] f
а передаем:
%arr[1]
?
Тогда это все-таки передача не массива, а элемента массива...
Cockney
Да, получается тогда элемент, я путаюсь в понятиях.
Cockney
Кто сталкивался с таким?


Есть элемент размера дворд (сразу скажу, что это часть заголовка бмп, ширина или высота картинки). Считал, получил младший байт с размером(т.к. ширина меньше 255, то он и будет в младшем байте лежать). Но стоит увеличить ширину, к примеру, до 500, и код, обрабатывающий младший байт идет мимо. Нужно работать со старшим словом. Естественно, размер картинки заранее не известен, и код соответственно разный. Есть какие идеи, че можно с этим придумать? И подчеркну, о бмп неизвестно абсолютно ничего.
DarkMaster
Цитата
И подчеркну, о бмп неизвестно абсолютно ничего.

Я очень сильно не уверен, что имеет смысл обрабатывать бмп в общем виде. Вариантов кодировок бмп ОЧЕНЬ много. Для начала я бы ограничился актуальными для пилота.

По проблеме - можно проверять старший и в зависимости от его содержимого считывать младший и строить логику. Вообще не плохо бы почитать по сам формат. Там все не так просто, я уже когда-то садился из любопытства почитать и понял, что это бред, который если не нужен для работы, то читать из интереса не будешь.
Cockney
Кодировки тут не при чем. Я хочу получить дворд, но значение в этом дворде может быть равно и 1 байту, а может и двум. Это не известно. Но нужно получить корректное значение. Тут любое почти поле может быть таким.

А на предмет чего проверять старший а потом младший? они могут быть не пустые и разного размера.

К примеру :

Ширина бмп : 25

Дворд : 94386478256
Старший ворд : 56352
Младший : 47

Ширина бмп : 400

Дворд : 85676530932
Старший ворд : 48274
Младший : 5438

Числа взял от балды, но когда на деле копал примерно тоже самое было.


Документация тут поможет только для получения смещений полей. Все.
DarkMaster
Цитата

Документация тут поможет только для получения смещений полей. Все.

Кхе. Доки я уже когда-то смотрел, как уже писал. Может я не совсем корректно выразился "кодировки", если угодно "форматы". Бмп он не один. Его много. В этих "много" как раз куча разных вариантов заполнения шапки. Что точно помню, так это то, что там в начале идет номер байта с которого начинается не посредственно битовая маска(это статично во всех форматах), а после уже остальной заголовок который сильно разнится по размеру, полям и содержанию в зависимости от "формата". В общем виде может оказаться проще посмотреть начала битовой маски и размер файла, чем заниматься поддержкой всех полей.
Cockney
Ну, тут срежем, там обойдем, и получится не полноценная, асфальтированная дорога, а протоптанная дорожка.


Ты не понимаешь про что я. Мне все равно какие поля и за что они отвечают и как расположены, мне важно получить правильные данные, которые находятся в этих полях.

Как я уже говорил : есть дворд(8573465947398), но ценных данных в нем - 1 байт. И именно его нужно получить, причем не зная где и как он в этом дворде расположен. Вот в чем проблема.

Вернее как он расположен мы знаем, но не знаем, байт ли нам нужен или нет.
DarkMaster
Цитата
Ну, тут срежем, там обойдем, и получится не полноценная, асфальтированная дорога, а протоптанная дорожка.

Ты собираешься работать со всеми бмп? Ищи либу. Я реально не вижу обрабатывать, например, сжатие в бмп - им никто не пользуется.

Цитата
Вернее как он расположен мы знаем, но не знаем, байт ли нам нужен или нет.

Смотри доки, смотри какие структуры могут содержаться и в каких форматах. Это надо тупо сидеть и дословно перерисовывать 10 вариантов стандарта в код.
Cockney
Нет, я имею ввиду, сооовсем другое.

Смотри :

Код

//делаем дворд
//сначала or потом shl
set $a  FilesAPI.LogicOR (*250* *16*) //250 - старшая часть, 16 - младшая
set $g FilesAPI.LogicSHL (* $a * *16*) //сдвиг влево на 16
set logging $g
end_script


Этот код генерирует дворд, представь, что этот дворд мы прочитали из файла. Получается : 16384000. Запоминаем.

Этот дворд имеет основание - 250, что входит в рамки 1 байта.

А вот следующий дворд :

Код

//делаем дворд
//сначала or потом shl
set $a  FilesAPI.LogicOR (*340* *16*) //340 - старшая часть, 16 - младшая
set $g FilesAPI.LogicSHL (* $a * *16*) //сдвиг влево на 16
msg $g
end_script


Получаем 22282240. Тоже запоминаем. И думаем, что мы прочитали это из файла.

Этот дворд уже имеет основание 340, что выходит за рамки байта и подпадает под ворд.

Итого имеем :

16384000(250) и 22282240(340). Вот. А теперь представь, что мы не знаем какое у них основание. Просто прочитали и все. Но, из этих чисел нужно вытащить эти основания. Из одного вытащить 1 байт(250), а из другого 2(340). Надеюсь я понятно пояснил задачу.

Если под форматом бмп имеется ввиду порядок байт, то можно прочитать их в нужном режиме, но проблема другого характера. Нужно понять, что перед нами - 1 байт или 2.
DarkMaster
Цитата
Если под форматом бмп имеется ввиду порядок байт

Под ним имеется ввиду заголовок в комплексе и сжатие битмапа.
Цитата
Нужно понять, что перед нами - 1 байт или 2.

Дворд предполагает, что у нас есть 4 байта и эти 4 байта могут иметь значения от 00 до ff каждый. Если значение хранится и менно в дворде, то при хранении, например, 250, он не допускает наличие каких-либо значений в остальных байтах, соответственно мы можем смело утверждать, что запись будет выглядеть, как:
00 00 00 FA // При нормальном порядке байт
FA 00 00 00 // При обратном порядке байт.
Т.е. чтобы понять сколько у нас по факту байт используется и вычислить основание, нам просто нужно посчитать количество пустых байт подряд начиная со старшего. Ну либо я так и не понял тебя...

Если же это не натуральный дворд и количество байт выделяемых под размер динамическое, то должен быть либо указатель/номер байта либо какое-то дополнительное поле в структуре дающее понять где начало и где конец значения, чтобы отделить его от следующего параметра структуры.

Если я все еще туплю - напиши пару примеров в хексе: до значения, занчение, после значения.
Cockney
Нет, все что нужно расписал. Будем пытаться.
Cockney
Итак, кто реально юзал плагин? Какие неудобства ?

И есть ли толк от ReadWORD/DWORD , если в случае :

Цитата
00 00 00 FA // При нормальном порядке байт
FA 00 00 00 // При обратном порядке байт.
Т.е. чтобы понять сколько у нас по факту байт используется и вычислить основание, нам просто нужно посчитать количество пустых байт подряд начиная со старшего.
намного легче получить массив байт, а не из целого дворда выбивать каждый байт?
DarkMaster
Цитата
Итак, кто реально юзал плагин? Какие неудобства ?

Пока не юзал, задачи у плагина все-таки несколько специфичные. Несколько раз меня очень сильно припирало из-за отсутствия данного функционала в пилоте, но сейчас случай не представился. Из использования на каждый день - это хранение бмп внутри скрипта. На стороне пилота описывать не стал, т.к. думал ты собрался делать.

Цитата
намного легче получить массив байт, а не из целого дворда выбивать каждый байт?

Легче чем что? Для чего? Непонял...
Cockney
ReadArrayOfByte практичней, чем ReadDWORD получается (даже не знаю, вопрос это или утверждение). Если по той ситуации судить. Легче получить сразу массив из 4 байт, чем получить дворд, а потом его по байту разбирать и проверять.


----
Не, я с бмп не планировал работать.
-----
А вообще, была идея сделать плагин-контейнер для бмп, только вот не нашел как разумно к пилоту прибить ( в плане использования фаиндов по скрину в памяти плагина).
DarkMaster
DWORD/WORD вообще не должны возвращать слова. Они должны возвращать готовое число, которое нет необходимости пересобирать. В этом их смысл этих типов данных и этим они отличаются от массива байт.
Цитата
-1 - ошибка чтения или неверный хендл
Массив размером [1 2] в котором содержаться :
[1 1] - старшее слово дворда
[1 2] - младшее слово дворда

Одинаковое описание для ворда и дворда.
Cockney
Хотел высказаться, но чет долго это будет. Если короче, то ReadDWORD для чтения адресов, констант, а ReadArrrayOfByte для всего остального, так?

Не одинаковое описание же.

Для ворда :

Старший/младший байт слова

Для дворда :

Старшее/младшее слово дворда
DarkMaster
Цитата
Если короче, то ReadDWORD для чтения адресов, констант, а ReadArrrayOfByte для всего остального, так?

Так. Ну и dword основной контейнер для хранения числовых переменных, а не только констант и адресов.
Цитата
Не одинаковое описание же.

виноват. Показалось, что слова в слове были.
Cockney
Воот. А перечитай мой тогдашний вопрос. про вытаскивание истинного значения. Про это я и говорю, что считывание массива байт удобней для дальнейшей проверки, чем считывание дворда и его дальнейшая разборка на байты.

и выходит, что в целом считывание массива куда экономнее.(от ситуации, конечно, зависит,но..),чем дворда.
DarkMaster
Суть моего прошлого поста была в том, что плагин не должен (д)ворд возвращать, как куски значений. Он должен возвращать сразу готовое число.
Cockney
Помоему,он его и возвращает,а куски как бонус. Либо не дописал в описании, либо и правда только кусками.
FREEON
Наверное каждый(или почти каждый) задавался вопросом, как создать один exe-шник с функциями которые можно подрубить или выключить во время нужного выполняемого нам действия. Вот и у меня сейчас он стоит. Вроде бы среду для создания бота нашел, отлично для этого дела подойдет Visual Studio(видео уроков хватает). Привязать можно, кнопочки и пр. фишки создать можно. Но встает вопрос...Где можно нарыть библиотеки, что бы наша прога понимала команды и функциии с пилота? А то писать заново как-то сложно ну и пока что не совсем понятно как. Если у кого-то есть файл с библиотекой то выложите пожалуйста?! sad.gif
Cockney
Цитата
Вроде бы среду для создания бота нашел, отлично для этого дела подойдет Visual Studio


Такс. Хорошо. Но, боюсь, для освоения этого чудовища нужны хотя-бы базовое понимание происходящего в этой среде. Ну, а судя по вопросу
Цитата
Где можно нарыть библиотеки, что бы наша прога понимала команды и функциии с пилота?
такого не имеется.

Цитата
Где можно нарыть библиотеки, что бы наша прога понимала команды и функциии с пилота?


Нигде, никак и никогда. Такие библиотеки(полнофункциональные) не распространяются в принципе. Нет, если конечно, заплатить, то м.б.

Цитата
А то писать заново как-то сложно ну и пока что не совсем понятно как


Забыть. Просто забыть про идею что-либо писать самому с такими познаниями в данной сфере. Забив в гугл : "компиляция бота" можно выйти на пару интересных решений, которые все умеют и с кнопочками, рюшечками и золотыми бусами. Но они платные. От пары евро (200р) в месяц до бесконечности. Я бы лучше заплатил и не мучился.
FREEON
Цитата(Cockney @ 15.7.2017, 16:03) *

Такс. Хорошо. Но, боюсь, для освоения этого чудовища нужны хотя-бы базовое понимание происходящего в этой среде. Ну, а судя по вопросу такого не имеется.
Нигде, никак и никогда. Такие библиотеки(полнофункциональные) не распространяются в принципе. Нет, если конечно, заплатить, то м.б.
Забыть. Просто забыть про идею что-либо писать самому с такими познаниями в данной сфере. Забив в гугл : "компиляция бота" можно выйти на пару интересных решений, которые все умеют и с кнопочками, рюшечками и золотыми бусами. Но они платные. От пары евро (200р) в месяц до бесконечности. Я бы лучше заплатил и не мучился.

Дай денег.
Ну Рим тоже не сразу строился. Ну научиться никогда не поздно и навыки никогда не бывают лишними. Ну в принципе такого ответа и ожидал...Благодарю что хоть направление для поиска указал будем искать и бусинками обвешивать.
Cockney
Я в шоке с наглости. Дайте библиотеку, программу, да чтоб само все работало без меня, да чтоб легко все было. А как же труд разработчика библиотеки,программы ? Такие вещи СТОЯТ своих денег, и они ОПРАВДЫВАЮТ себя, если продаются, конечно. Ну, ты конечно же, лучше знаешь цену чужому труду. Вот как напишешь что-то стоящее, тогда сам и оценишь свою поделку(и конечно же, она будет стоить денег, это же мое !).

Информации в интернете полно : эмуляция клавиш, снять скриншот, клик мышью эмуляция и т.п. запросы в гугл.

И все же, я призываю купить уже готовое. Я не поверю, что 200-300р. неподъемная цена для среднего жителя России. Тем более, что готовые боты можно будет продавать и получать прибыль.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.