Кибор » Кибор - Интегрированная среда разработки ботов » О программе Кибор » Версия 4.13 Подключение своих DLL. Использование WinAPI функции в скрипте с стандартных библиотек

Страниц (7): « 1 2 [3] 4 5 6 7 »
 

21. Kibor - 28 Февраля, 2018 - 06:45:40 - перейти к сообщению
Вот еще.


Это покажет путь ко всем программам. Калькулятору в том числе. Хоть кнопки ПУСК

CODE:
external(INT, "GetProcessImageFileName", "GetProcessImageFileNameA","Psapi.dll");

char array[255];
win w=window ("Калькулятор", "CalcFrame", -1);
int prc=openprocess(w);
GetProcessImageFileName(prc, address (#array[0]), 255);
messagebox(format(#array[0]));


А это немного извращения.. Узнаем путь чтением памяти запущенного процесса сами. Перед этим узнаем имя самого файла путем как выше.

CODE:
external(INT, "GetProcessImageFileName", "GetProcessImageFileNameA","Psapi.dll");


messagebox(path_search(window ("Калькулятор", "CalcFrame", -1)));


function path_search(win w)
{
string exe_name="";
char array[255];
char all_poisk[255];
char chitat_v_char[255];
int adr;
int prc=openprocess(w);
GetProcessImageFileName(prc, address (#array[0]), 255);
for (int n=size(#array[0])-1; n>-1; n--)
{
if (array[n]=='\')goto rr;
exe_name=array[n]+exe_name;
}
rr:;
//messagebox(exe_name);
strcpy(#all_poisk[0], exe_name);
findmemory (1, #all_poisk[0], size(#all_poisk[0]), #adr, 255, prc);

string pyt=exe_name;
chitat_v_char[0]=0;
readmemory(#chitat_v_char[0], 255, adr-255, prc);
for (n=254; n>-1; n--)
{
if (chitat_v_char[n]==0)goto yy;
pyt=chitat_v_char[n]+pyt;
}
yy:;
return pyt;
}


Коряво только работает определение начала строки. Можно по спец символам ориентироваться. Типа :\ и перед этим какая то буква диска..
22. Flash - 01 Апреля, 2018 - 23:43:02 - перейти к сообщению
Такой вопрос, можно ли с помощью (external) переназначить клавишу на клавиатуре? Например надо заменить правый шифт на интер. Если можно, то напишите примерУлыбка
23. Zireael - 02 Апреля, 2018 - 06:26:22 - перейти к сообщению
Для этого есть специальные программы, например SharpKeys.
Или пишем в блокноте:
CODE:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,1c,00,36,00,00,00,00,00

Сохраняем с любым именем и расширением .reg, например 123.reg. Запускаем, добавляем инфу с реестр, перезагружаем комп. Вместо правого шифта будет энтер.
24. Dantes3000 - 08 Августа, 2018 - 02:50:17 - перейти к сообщению
 Kibor пишет:
Подключает user32.dll, получает указатель на Api функцию MessageBoxA, указывает что в скрипте мы ее будем вызывать по символическому имени my_message и возвращать эта функция будет тип int

Пример создания и подключение своего диалогового окна созданного в Visual Studio

Открытие ссылки

что-то мне кажется, что ссылка не на ту тему ведет
25. Kibor - 08 Августа, 2018 - 02:57:45 - перейти к сообщению
 Dantes3000 пишет:
не на ту тему ведет

ага.. исправил.
26. AdryV - 01 Сентября, 2018 - 03:39:28 - перейти к сообщению
где то на форуме был пост где был приведен пример как выбрать файл txt ini через проводник виндовс Открыть или Сохранить... тоисть с помощью проводника получить путь к файлу...
нужно что бы открывать настройки и сохранять

пожалуйста ткните носом

сам нашел
27. Zireael - 25 Ноября, 2018 - 08:16:45 - перейти к сообщению
Вопрос по поводу addresss - считывает до первого 0 строку (string).
CODE:
external(INT, "OpenClipboard", "OpenClipboard", "User32.dll" );
external(INT, "CloseClipboard", "CloseClipboard", "User32.dll" );
external(INT, "GetClipboardData", "GetClipboardData", "User32.dll" );
external(INT, "GlobalLock", "GlobalLock", "Kernel32.dll" );
external(INT, "GlobalUnlock", "GlobalUnlock", "Kernel32.dll" );

writeclipboard("qwe123"); // пишем текст в буфер

OpenClipboard(0); // открыть буфер
int h = GetClipboardData(1); // 1 - текст в буфере в ansi
int addr = GlobalLock(h); // указатель на первый байт

int i=0;
while(addressc(addr+i)!=formatic(0)) // пока не 0
{
messagebox(addressc(addr+i)); // читаем по байтам
i++;
}

// messagebox(addresss(addr)); // почему так кибор закрывается?

GlobalUnlock(h);
CloseClipboard(); // закрыть буфер
28. AdryV - 09 Декабря, 2018 - 05:14:10 - перейти к сообщению
 Kibor пишет:
CODE:
external(VOID, "GetSaveFile", "GetSaveFileNameA", "COMDLG32.DLL");
char b[100];
strcpy(#b[0], "файл");
char f[256];
for (int n=0; n<256; n++)f[n]=0;
char a[77];
for (n=0; n<77; 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(address(#f[0]), address(#a[36]));
writeaddress(6148, address(#a[40]));

GetSaveFile(address(#a[0]));
messagebox (format(#f[0]));


подскажи по какой причине этот код постоянно крашит кибор?...
что бы перестал крашиться нужно изменить
char f[512];
for (int n=0; n<512; n++)f[n]=0;
char a[100];
for (n=0; n<100; n++)a[n]=0;
раньше все нормально работало. мне интересно у вас крашится?
если такое ток у меня то эт проблема с виндой, подскажите какие файлы проверять?

ошибка (Отобразить)
29. Zireael - 09 Декабря, 2018 - 06:14:37 - перейти к сообщению
 Цитата:
подскажи по какой причине этот код постоянно крашит кибор?

Неправильно заполнена структура tagOFNA structure
Окно сохранения файла (Отобразить)
30. AdryV - 09 Декабря, 2018 - 06:42:21 - перейти к сообщению
 Zireael пишет:
Неправильно заполнена структура

сбасиб Подмигивание
еще вопрос эту функцию ведь можно использовать как доя открытия так и для сохранения
только нужно будет заменить, крашей ведь не будет?)))

код (Отобразить)

Powered by ExBB FM 1.0 Final