Кибор » Кибор - Интегрированная среда разработки ботов » О программе Кибор » Версия 5.05 Запись данных по указанному адресу.

Страниц (1): [1]
 

1. Kibor - 17 Февраля, 2016 - 09:57:24 - перейти к сообщению
writeaddress - записывает данные (int, double, string, char) по указанному адресу.

Синтаксис
CODE:
char h[512];
int adr=address(#h[27]);
writeaddress(353545, adr);

Запишет число 353545 по адресу adr.

CODE:
char h[512];
int adr=address(#h[127]);
writeaddress('a', adr);

Запишет a по адресу adr.

Удобно использовать для заполнения структур.
Заполнение структуры для передачи в виде параметра в GetSaveFileNameA
CODE:
external(VOID, "GetSaveFile", "GetSaveFileNameA", "COMDLG32.DLL");
char b[100];
strcpy(#b[0], "Все файлы такого типа..");

char a[76];
for (int n=0; n<76; n++)a[n]=0;

writeaddress(76, address(#a[0]));
writeaddress(0, address(#a[4]));
writeaddress(0, address(#a[8]));
writeaddress(address(#b[0]), address(#a[12]));
writeaddress(0, address(#a[16]));
writeaddress(1634928, address(#a[20]));
writeaddress(1000, address(#a[24]));
writeaddress(0, address(#a[28]));
writeaddress(0, address(#a[32]));
writeaddress(0, address(#a[36]));
writeaddress(6148, address(#a[40]));

GetSaveFile(address(#a[0]));
2. DeLiberate - 17 Февраля, 2016 - 10:22:46 - перейти к сообщению
Я так понял, это тот же writememory, только может записывать не только hex?
3. Kibor - 17 Февраля, 2016 - 10:59:19 - перейти к сообщению
writememory записывает просто байты в память процесса другого....

writeaddress записывает данные определенного типа по адресу полученному с помощью address, и служит для оперирования данными своих переменных..
4. Skycrew - 20 Февраля, 2016 - 13:55:05 - перейти к сообщению
Инструменты для ингеймовского ботописания добавляются, что есть очень хорошо Подмигивание
5. Kibor - 22 Февраля, 2016 - 06:51:12 - перейти к сообщению
 Skycrew пишет:
Инструменты для ингеймовского ботописания добавляются, что есть очень хорошо

Не...
Эти функции позволяют записывать данные именно в переменные своей программы...
В частности это своего рода заменитель структур.. Которые часто используются для передачи параметров в многие API функции. Пример выше..
В Кибор нет структур, поэтому заполнение структуры идет непосредственно по адресам байтового массива char

Код создания и заполнения структуры на C++
CODE:
struct str //Создаем структуру
{ // задаем переменные данных структуры
char *name; //здесь будет храниться имя
char *surname; //фамилия
int day; //дата рождения
int month; //месяц рождения
int year; //год рождения
};
str per;

per.name="Василий";
per.surname="Лужков";
per.day=25;
per.month=7;
per.year=2002;

MessageBox (CString (per.name));
MessageBox (CString (per.surname));
CString f;
f.Format("%i", per.day); MessageBox (f);
f.Format("%i", per.month); MessageBox (f);
f.Format("%i", per.year); MessageBox (f);


Код создания структуры в Кибор
CODE:
//выделяем на имя фамилию по 64 байта
//числа занимают по 4 байта
char per[140];//Создаем структуру
for (int n=0; n<140; n++)per[n]=0;//Обнулим массив

strcpy(#per[0], "Василий");//здесь будет храниться имя
strcpy(#per[64], "Лужков");//фамилия
writeaddress(25, address(#per[128]));//дата рождения
writeaddress(7, address(#per[132]));//месяц рождения
writeaddress(2002, address(#per[136]));//год рождения

messagebox (format(#per[0]));
messagebox (format(#per[64]));
messagebox (addressi(address(#per[128])));
messagebox (addressi(address(#per[132])));
messagebox (addressi(address(#per[136])));
6. Skycrew - 25 Февраля, 2016 - 04:49:26 - перейти к сообщению
Ааа понял

Powered by ExBB FM 1.0 Final