windows开始菜单中的快捷方式-Matlab可执行文件

windows开始菜单中的快捷方式-Matlab可执行文件,windows,matlab,matlab-guide,Windows,Matlab,Matlab Guide,我创建了一个基于gui的可执行文件,其中包含多个函数和文件,如果我在安装文件夹中打开该可执行文件,或者使用桌面快捷方式,一切正常。如果我通过“开始”菜单打开,则可执行文件不会包含图像,也不会运行。我能做些什么来防止这个问题?是否可以阻止windows“开始”菜单中的快捷方式?我找到了一个解决方案: 您可以使用以下函数获取执行的exe文件的文件夹: function currentDir = getcurrentdir() if isdeployed % Stand-alone mode.

我创建了一个基于gui的可执行文件,其中包含多个函数和文件,如果我在安装文件夹中打开该可执行文件,或者使用桌面快捷方式,一切正常。如果我通过“开始”菜单打开,则可执行文件不会包含图像,也不会运行。我能做些什么来防止这个问题?是否可以阻止windows“开始”菜单中的快捷方式?

我找到了一个解决方案:

您可以使用以下函数获取执行的
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
调用该函数并在GUI打开函数中使用
cd

currentDir = getcurrentdir();
cd(currentDir);

我创建了一个
guide
测试应用程序,并使用
deploytool
编译和打包外部部署

为了进行测试,我在GUI中添加了一个文本标签(标签名:
text2

在GUI打开功能中,我添加了以下代码:

% --- 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文件的路径中创建的

你的问题离题了。。。我认为您应该修改快捷方式(开始菜单中的快捷方式)的“开始位置”文本。在Windows 10中,右键单击图标(开始菜单中的图标),选择“更多”并选择“打开文件位置”,可以找到“快捷方式文件”。右键单击快捷方式文件,然后选择“属性”。将“开始”修改为与桌面快捷方式(有效的快捷方式)中的“开始”相同的位置。我知道如何手动查找正确的位置,我的问题是如何使用matlab自动处理此问题。我已经在我的代码中尝试了ctfroot函数而不是pwd函数,但是这将在临时位置安装我的文件。好的,现在我想我理解了这个问题。您正在尝试更改已部署应用程序中的工作目录。我说得对吗?您正在使用部署工具吗?请试着把你的问题修改得更清楚。你忘了给我的答案一个反馈。你试过了吗?解决我的问题。谢谢