Собственно, exe файл игры, с которым будет работать Кибор, может находиться в разных папках у разных пользователей. Как можно сделать, чтобы при запуске Кибора, пользователь указывал путь к своей папке с игрой?
Или можно ли каким-то образом сделать, чтобы кибор сам искал на компьютере клиента при запуске файл memuc.exe?
1. Duat - 12 Февраля, 2020 - 09:24:10 - перейти к сообщению
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, но не срабатывает, командная строка не реагирует на данную команду
Как я могу заменить выделенное красным текстом на папку с игрой, где будет находиться собранный 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);
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, не отображая на экран монитора, что файл открывается.
С выбором папки все супер!!! Спасибо огромное)
А почему Кибор матерится на:
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);
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)
Если через #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("Ничего не выбрано");
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("Ничего не выбрано");