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

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

61. Zireael - 22 Октября, 2022 - 15:36:37 - перейти к сообщению
 Цитата:
запустить .exe файл с флагом?

С аргументами?

Запустить браузер хром с размерами 800,600 в режиме инкогнито:
CODE:
external(VOID, "ShellExecute", "ShellExecuteA", "Shell32.dll");
ShellExecute(0, "open", "chrome.exe", "-window-size=800,600 -incognito", "", SW_HIDE);
62. neba2101 - 23 Октября, 2022 - 05:20:31 - перейти к сообщению
 Zireael пишет:
 Цитата:
запустить .exe файл с флагом?

С аргументами?

Запустить браузер хром с размерами 800,600 в режиме инкогнито:
CODE:
external(VOID, "ShellExecute", "ShellExecuteA", "Shell32.dll");
ShellExecute(0, "open", "chrome.exe", "-window-size=800,600 -incognito", "", SW_HIDE);


Отлично, спасибо!
63. Dantes3000 - 10 Февраля, 2023 - 17:21:21 - перейти к сообщению
Как получить имя ПК?

CODE:
char c[200];

external(INT, "GetComputerName", "GetComputerNameA", "kernel32.dll");
GetComputerName(address (#c[0]), 199);


messagebox(format(#c[0]));
64. Zireael - 10 Февраля, 2023 - 17:27:41 - перейти к сообщению
 Цитата:
Как получить имя ПК?

CODE:
external(INT, "GetComputerName", "GetComputerNameA", "kernel32.dll");

char Buffer[200];

int Size = sizearray(Buffer);
GetComputerName(address (#Buffer[0]), address(#Size));
messagebox(format(#Buffer[0]));
messagebox("Записано байт: "+format(Size));
65. petyanka - 10 Декабря, 2023 - 12:13:03 - перейти к сообщению
На сколько я понял, подключать одну и ту же DLL с разными параметрами кибор не позволит, возможно есть какой-то способ использовать массив в киборе и с помощью функции внутри DLL применять эти параметры к переменным.

Как мне быть, если мне нужно вносить изменения одновременно в 5 переменных INT внутри DLL, а после вызывать функцию для получения результата?
66. Zireael - 14 Декабря, 2023 - 04:11:44 - перейти к сообщению
 Цитата:
Первый параметр INT DOUBLE STRING CHAR VOID. Что возвращает функция.

По факту вернуть можно только INT. double всегда возвращает 0, char выдаёт ошибку.
Да, можно получить значение по указателю. Надо бы исправить описание, либо исправить возврат перечисленных типов.
67. neba2101 - 08 Декабря, 2024 - 04:11:44 - перейти к сообщению
Как переименовать папку?
68. Zireael - 08 Декабря, 2024 - 04:24:14 - перейти к сообщению
 Цитата:
Как переименовать папку?

MoveFile, вначале темы есть пример.
69. NickSpirit2 - 16 Июня, 2025 - 01:29:57 - перейти к сообщению
Всем привет!
А может кто-нить подскажет как получить дату изменения файла?
Я так понял нужна GetFileTime но как ее корректно подключить не оч понятно..
70. Zireael - 16 Июня, 2025 - 02:27:22 - перейти к сообщению
 Цитата:
как получить дату изменения файла?

CODE:
#define GENERIC_READ -2147483648
#define FILE_SHARE_READ 0x00000001
#define OPEN_EXISTING 3
#define FILE_ATTRIBUTE_NORMAL 128
#define INVALID_HANDLE_VALUE -1

external(INT, "CloseHandle", "CloseHandle", "Kernel32.dll");
external(INT, "CreateFile", "CreateFileA", "Kernel32.dll");
external(INT, "GetFileTime", "GetFileTime", "Kernel32.dll");
external(INT, "FileTimeToSystemTime", "FileTimeToSystemTime", "Kernel32.dll");
external(INT, "FileTimeToLocalFileTime", "FileTimeToLocalFileTime", "Kernel32.dll");
external(INT, "sprintf_s", "sprintf_s", "msvcrt.dll");

char ft[8]; // FILETIME structure
char ft2[8]; // FILETIME structure
char st[16]; // SYSTEMTIME structure
char tzi[172]; // TIME_ZONE_INFORMATION structure

string path = "Kibor.exe"; // путь к файлу

int h_file = CreateFile(path, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if(h_file != INVALID_HANDLE_VALUE)
{
GetFileTime(h_file, 0, 0, address(#ft[0]));
CloseHandle(h_file);

FileTimeToLocalFileTime(address(#ft[0]), address(#ft2[0]));
FileTimeToSystemTime(address(#ft2[0]), address(#st[0]));

int year = codhexi(#st[0], 2);
int month = codhexi(#st[2], 2);
int day = codhexi(#st[6], 2);
int hour = codhexi(#st[8], 2);
int min = codhexi(#st[10], 2);
int sec = codhexi(#st[12], 2);

char buf[99];
sprintf_s(address(#buf[0]), sizearray(buf), "%02d.%02d.%d^r^n%02d:%02d:%d", day, month, year, hour, min, sec);
messagebox(format(#buf[0]));
}
else messagebox("Файл не открылся");

Powered by ExBB FM 1.0 Final