int shell_func(string directive, ...)
Осуществляет обращение к системным функциям.
Набор аргументов определяется в соответствии с директивой.
Возвращает 0 при успешном выполнении. Если что-то пошло не так возвращает -1.
get_path | получить в строковую переменную путь в соответствии с запросом | |
set_cur_dir | сменить текущий каталог | |
shellexecute | выполнить операцию |
get_path
Формат команды:
shell_func("get_path", string what, string result);
Переменная what задает тип возвращаемого пути:
rootconfig | получить путь к корневому каталогу текущей конфигурации |
tsimages | получить путь к каталогу картинок текущей конфигурации |
tsprg | получить путь к каталогу программ текущей конфигурации |
rootaddons | получить путь к каталогу, где находится сам LabPP_Automat |
set_cur_dir
Формат команды:
shell_func("set_cur_dir", string path_or_what);
path_or_what - может быть путь или директива ("rootconfig", tsimages, tsprg или rootaddons).
Пример. Установить текущий каталог "C:\\MyDir":
string mydir = "C:\\MyDir";
int res = shell_func("set_cur_dir",mydir);
if(res==0)
cout << "Рабочий каталог успешно изменен";
else
cout << "Установить каталог на " << mydir <<" не удалось";
shellexecute
Выполнить операцию программной оболочки.
Можно открывать файлы, отправлять их на печать и т.д. при помощи соответствующей программы, заданной на уровне операционной системы.
Пример. Открыть файл "Пример.xls", находящийся в каталоге текущей конфигурации LabPP_Automat.
int res = shell_func("set_cur_dir","rootconfig");
if(res !=0)
return -1;
res = shell_func("shellexecute","Пример.xls");
Будет открыт файл Пример.xls при помощи той программы, которая используется по умолчанию для файлов с расширением .xls на компьютере пользователя. Обычно это EXCEL.
Так можно открывать файлы EXCEL из ARCHICAD.