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

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

1. Duat - 12 Февраля, 2020 - 09:24:10 - перейти к сообщению
Собственно, exe файл игры, с которым будет работать Кибор, может находиться в разных папках у разных пользователей. Как можно сделать, чтобы при запуске Кибора, пользователь указывал путь к своей папке с игрой?
Или можно ли каким-то образом сделать, чтобы кибор сам искал на компьютере клиента при запуске файл memuc.exe?
2. Duat - 12 Февраля, 2020 - 12:50:33 - перейти к сообщению
Невозможно отредактировать первое сообщение.
Как я могу заменить выделенное красным текстом на папку с игрой, где будет находиться собранный exe-файл?

ShellExecute(0, "open", "cmd.exe", "/c E:/Microvirt/MEmu/memuc.exe start -n MEmu_"+format(a)+"", "", 0);

На одном компе, путь будет следующий: E:/Microvirt/MEmu/
На другом: D:/Microvirt/MEmu/
На третьем: D:/MEmu/
И т.д.
Пробовал засунуть сюда pathfolder, но не срабатывает, командная строка не реагирует на данную команду
3. Zireael - 12 Февраля, 2020 - 17:35:37 - перейти к сообщению
 Цитата:
E:/Microvirt/MEmu/

Не тот слеш, должен быть обратный \.
 Цитата:
Пробовал засунуть сюда pathfolder, но не срабатывает

Всё работает, если правильно использовать команды.
 Цитата:
Как я могу заменить выделенное красным текстом

CODE:
string path="E:\Microvirt\MEmu\memuc.exe";
string s="/c "+path+" start -n MEmu_";
messagebox(s);

 Цитата:
пользователь указывал путь к своей папке с игрой?

Диалог открыть файл (Отобразить)
4. Duat - 12 Февраля, 2020 - 17:39:24 - перейти к сообщению
Спасибо.

А почему Кибор матерится на:
ShellExecute(0, "open", "cmd.exe", "/c E:\Microvirt\MEmuHyperv\MEmuManage.exe list vms >> list.txt", "", 0);
ShellExecute(0, "open", "cmd.exe", "Find /c "MEmu" E:\kibor\list.txt >> E:\kibor\count.txt", "", 0);
Файл list.txt создается, а на подсчет количества строк Кибор ругается. Хотя команда подсчета в командной строке выполняется(

Смысл в том, что хочу подсчитать количество строк, содержащих слово MEmu, не отображая на экран монитора, что файл открывается.

С выбором папки все супер!!! Спасибо огромное)
5. Zireael - 12 Февраля, 2020 - 18:20:16 - перейти к сообщению
 Цитата:
а на подсчет количества строк Кибор ругается.

Если нужно использовать символ кавычек, то formatic(34).
CODE:
external(INT, "ShellExecute", "ShellExecuteA", "Shell32.dll");

string s="/c "+formatic(34)+"E:\Microvirt\MEmuHyperv\MEmuManage.exe"+formatic(34)+" list vms >> list.txt";
messagebox(s);
ShellExecute(0, "open", "cmd.exe", s, "", 0);

 Цитата:
подсчитать количество строк, содержащих слово MEmu

Узнать сколько в файле слов (Отобразить)
6. Duat - 13 Февраля, 2020 - 10:33:46 - перейти к сообщению
А я могу как-то подключать часть скрипта с переменными уже после сбора запускного файла?

Если через #include, то получается эта часть кода присоединяется к собранному exe файлу.

в той части скрипта, находятся переменные, которые иногда приходится менять ( 0 или 1)
Чтото типо такого в файле находится (Отобразить)
7. Zireael - 13 Февраля, 2020 - 16:21:12 - перейти к сообщению
 Цитата:
А я могу как-то подключать часть скрипта с переменными уже после сбора запускного файла?

Нельзя.
Можно прочитать файл и присвоить значения переменным.
Или использовать диалоговое окно для ввода данных.
8. neba2101 - 15 Декабря, 2025 - 08:25:02 - перейти к сообщению
 Цитата:
пользователь указывал путь к своей папке с игрой?

Диалог открыть файл (Отобразить)


А как задать путь не до файла, а до папки?
9. neba2101 - 15 Декабря, 2025 - 11:19:07 - перейти к сообщению
 neba2101 пишет:

А как задать путь не до файла, а до папки?


В смысле не файл выбирать внутри папки, а саму папку
10. Zireael - 16 Декабря, 2025 - 04:17:55 - перейти к сообщению
 Цитата:
А как задать путь не до файла, а до папки?

CODE:
#define BIF_NEWDIALOGSTYLE 64
external(INT, "SHBrowseForFolder", "SHBrowseForFolderA", "Shell32.dll");
external(INT, "SHGetPathFromIDList", "SHGetPathFromIDListA", "Shell32.dll");

char path[260];
int BROWSEINFO[8]={gethwnd(), 0, address(#path[0]), 0, BIF_NEWDIALOGSTYLE, 0, 0, 0};

int PIDL=SHBrowseForFolder(address(#BROWSEINFO[0]));
if(PIDL)
{
messagebox(format(#path[0])); // выбранная папка
if(SHGetPathFromIDList(PIDL, address(#path[0])))messagebox(format(#path[0])); // полный путь
}
else messagebox("Ничего не выбрано");

Powered by ExBB FM 1.0 Final