ярлык в меню запуска Windows - исполняемый файл Matlab - PullRequest
0 голосов
/ 23 октября 2019

Я создаю исполняемый файл на основе графического интерфейса пользователя с несколькими функциями и файлами, и если я открываю исполняемый файл в папке установки или с помощью ярлыка на рабочем столе, все работает нормально. Если я открою меню «Пуск», исполняемый файл не содержит изображений и не запускается. Что я могу сделать, чтобы предотвратить эту проблему? Можно ли предотвратить ярлык в меню запуска Windows?

1 Ответ

0 голосов
/ 24 октября 2019

Я нашел решение здесь :

Вы можете использовать следующую функцию, чтобы получить папку исполняемого файла exe:

function currentDir = getcurrentdir()
if isdeployed % Stand-alone mode.
    [status, result] = system('path');
    currentDir = char(regexpi(result, 'Path=(.*?);', 'tokens', 'once'));
else % MATLAB mode.
    currentDir = pwd;
end

Вызовитеиспользуйте и используйте cd в функции открытия графического интерфейса:

currentDir = getcurrentdir();
cd(currentDir);

Я создал тестовое приложение guide и использовал deploytool для компиляции и упаковки для внешнего развертывания.

Для тестирования я добавил текстовую метку в графический интерфейс (имя тега: text2).

В функции открытия графического интерфейса я добавил следующий код:

% --- Executes just before GuideApp is made visible.
function GuideApp_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;

handles.text2.String = 'Starting...';
pause(1);
currentDir = getcurrentdir();

%Set the label's text to display currentDir.
handles.text2.String = currentDir;

%Change directory to the directory of the exe file.
cd(currentDir);

%Create a file in the directory (just for testing):
f = fopen('currentDir.txt', 'w');fprintf(f, '%s\r\n', currentDir);fclose(f);

% Update handles structure
guidata(hObject, handles);

Приведенное выше решение работает правильно:
Текст метки отображает путь к exe-файлу.
currentDir.txt файл создается по пути к exe-файлу.

...