我已经向不同的用户分发了一个独立工作的版本。当他们连接到共享驱动器时,我想检查一下是否有此独立驱动器的更新。我已经把它弄好了,它会把新的安装包下载到独立的目录下。但是,我不能安装它,因为单机版已经在运行了(你不允许覆盖正在运行的应用程序),有没有办法让这个更新自动进行?在代码中:
copyfile(name,CurrentDirectory); % Download the new package [this works]
system([CurrentDirectory,name,' -o']); % Can't overwrite the .exe file (this code will just run the package of the standalone)先感谢你的帮助,
发布于 2013-10-18 20:43:47
看起来你是在尝试使用某个程序来自我更新。这听起来很有问题,下面是你可以做的:
mainProgram以获取您需要的包mainProgram启动第二个程序updater kill mainProgram并更新程序updater启动mainProgram并自行终止它将要求程序具有一些权利,但我希望它能为您完成工作。
下面是一个脚本,我使用它来终止您的my用户的所有Excel实例。我认为这可以改为处理mainProgram。
[~, computer] = system('hostname');
[~, user] = system('whoami');
[~, alltask] = system(['tasklist /S ', computer, ' /U ', user]);
excelPID = regexp(alltask, 'EXCEL.EXE\s*(\d+)\s', 'tokens');
for i = 1 : length(excelPID)
killPID = cell2mat(excelPID{i});
system(['taskkill /f /pid ', killPID]);
end这是我在windows下使用的,不确定这在其他操作系统上是否有效,但在其他操作系统中应该不难找到如何杀死进程。
https://stackoverflow.com/questions/19446567
复制相似问题