Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Отправить команду через ярлык

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

1. Arimor - 20 Января, 2021 - 17:06:16 - перейти к сообщению
Есть скрипт с любыми функциями

CODE:

function one(){}
function two(){}
function three(){}


После компиляции в exe файл, есть возможность выполнить эти функции за счет ярлыков на рабочем столе? ярлык one, запускает функцию one(); и так далее. Возможно как то задать доп параметры в ярлыке которые программа считает и запустит нужную функцию.
2. Zireael - 20 Января, 2021 - 18:27:49 - перейти к сообщению
В свойствах ярлыка дописывайте что нужно, например "D:\Kibor\exe\Kibor-exe.exe -i -c", скрипт вернёт эту строку.
CODE:
external(INT, "GetCommandLine", "GetCommandLineA", "Kernel32.dll");

int adres = GetCommandLine();
int i=0;
string command="";
loop()
{
char c = addressc(adres+i);
if(formatci(c) == 0)break;
command=command+c;
i++;
}

messagebox(command);
// тут парсить строку, проверяя наличие параметров
3. Kibor - 21 Января, 2021 - 04:19:04 - перейти к сообщению
 Zireael пишет:
В свойствах ярлыка дописывайте что нужно, например "D:\Kibor\exe\Kibor-exe.exe -i -c", скрипт вернёт эту строку.

А не так?
CODE:
"D:\Kibor\exe\Kibor-exe.exe" -i -c
4. Zireael - 21 Января, 2021 - 04:35:19 - перейти к сообщению
 Цитата:
А не так?
CODE:
"D:\Kibor\exe\Kibor-exe.exe" -i -c

Да, так. Не там кавычку поставил.
5. Zireael - 05 Мая, 2021 - 09:52:36 - перейти к сообщению
Ещё так можно:
CODE:
external(INT, "GetCommandLineW", "GetCommandLineW", "Kernel32.dll");
external(INT, "CommandLineToArgvW", "CommandLineToArgvW", "Shell32.dll");
external(INT, "MessageBoxW", "MessageBoxW", "User32.dll");
external(INT, "LocalFree", "LocalFree", "Kernel32.dll");

int nArgs;
int szArglist = CommandLineToArgvW(GetCommandLineW(), address(#nArgs));

if(nArgs==0)messagebox("Ошибка при получении аргументов");
else
{
if(nArgs==1)messagebox("Аргументы отсутствуют");
else
{
messagebox("Всего аргументов: "+format(nArgs));
for(int i=0; i<nArgs; i++)MessageBoxW(0, addressi(szArglist+i*4), 0, 0);
LocalFree(szArglist);
}
}

Но, надо учитывать что строки в юникод.

Powered by ExBB FM 1.0 Final