windows开始菜单中的快捷方式-Matlab可执行文件
我创建了一个基于gui的可执行文件,其中包含多个函数和文件,如果我在安装文件夹中打开该可执行文件,或者使用桌面快捷方式,一切正常。如果我通过“开始”菜单打开,则可执行文件不会包含图像,也不会运行。我能做些什么来防止这个问题?是否可以阻止windows“开始”菜单中的快捷方式?我找到了一个解决方案: 您可以使用以下函数获取执行的windows开始菜单中的快捷方式-Matlab可执行文件,windows,matlab,matlab-guide,Windows,Matlab,Matlab Guide,我创建了一个基于gui的可执行文件,其中包含多个函数和文件,如果我在安装文件夹中打开该可执行文件,或者使用桌面快捷方式,一切正常。如果我通过“开始”菜单打开,则可执行文件不会包含图像,也不会运行。我能做些什么来防止这个问题?是否可以阻止windows“开始”菜单中的快捷方式?我找到了一个解决方案: 您可以使用以下函数获取执行的exe文件的文件夹: function currentDir = getcurrentdir() if isdeployed % Stand-alone mode.
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函数,但是这将在临时位置安装我的文件。好的,现在我想我理解了这个问题。您正在尝试更改已部署应用程序中的工作目录。我说得对吗?您正在使用部署工具吗?请试着把你的问题修改得更清楚。你忘了给我的答案一个反馈。你试过了吗?解决我的问题。谢谢