在执行独立执行时更新 Matlab Independent



我已经将一个独立的工作分发给不同的用户。当它们连接到共享驱动器时,我想检查是否有此独立驱动器的可用更新。我已经有了这个工作,它会将新的安装包下载到独立安装所在的目录中。但是我无法安装它,因为独立运行已经在运行(您不允许覆盖正在运行的应用程序)有没有办法使此更新自动进行?在代码中:

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)

提前感谢您的帮助,

似乎您尝试使用某些程序来更新自己。这听起来很有问题,您可以执行以下操作:

  1. 运行mainProgram以获取所需的包
  2. 让我们mainProgram开始第二个程序updater
  3. updater杀死mainProgram并更新程序
  4. updater开始你的mainProgram并终止自己

这将要求程序拥有一些权利,但我希望它能为您完成工作。


下面是一个脚本,我用它来终止我的用户的所有 Excel 实例。我想这可以更改为处理mainProgram

    [~, computer] = system('hostname');
    [~, user] = system('whoami');
    [~, alltask] = system(['tasklist /S ', computer, ' /U ', user]);
    excelPID = regexp(alltask, 'EXCEL.EXEs*(d+)s', 'tokens');
    for i = 1 : length(excelPID)
        killPID = cell2mat(excelPID{i});
        system(['taskkill /f /pid ', killPID]);
    end

这是我在Windows下使用的内容,不确定这是否适用于其他操作系统,但是应该不难找到如何在其他操作系统中杀死进程。

最新更新