Lanciare e Chiudere un file *.exe da Matlab

di il
2 risposte

Lanciare e Chiudere un file *.exe da Matlab

Buona giornata,
dal Codice di una applicazione Matlab esempio "AppMain.m" lancio un file *.exe.
Il codice interessato è il seguente :

        % +------------------------------------
        % | Bottone 'Help'
        % +------------------------------------
        x=xp+dx;
        Ot=uicontrol(...
         'Parent',hPnlCmnd,...
         'Units','pixels',...
         'BackgroundColor',[0.94 0.94 0.94],...
         'ForegroundColor',[0 0 0],...
         'FontUnits','pixels',...
         'FontSize',14,...
         'FontWeight','bold',...
         'String','H e l p',...
         'Style','pushbutton',...
         'Position',[x,y,w,h],...
         'CallBack','AppMain(''Help01'');',...
         'Value',0,...
         'Tag','hPnlCmnd',...
         'Visible','on');
        hDati.ObjBase.hBtnHelp=Ot; 
-------------------------------
switch Argomento 
   ...
   ...
  case 'Help01'
      disp(['Attiva il Comando : <',Argomento,'>']); % Codice di controllo
      system('c:\Matlab\Lab\Help\HelpProva.exe');
      %............  
 ...
Il file HelpProva.exe si avvia regolarmente, è molto elaborato e appena lo chiudo il controllo
ritorna all'applicazione Matlab AppMain.m e si può continuare; tutto funziona molto bene.
Ma sarebbe, per me, più comodo se io potessi chiudere "HelpProva.exe" con un comando
da Matlab mediante una funzione attivata da un "Bottone".
Esiste una istruzione del tipo "xxx" tale che "xxx('c:\Matlab\Lab\Help\HelpProva.exe');
che chiuda "HelpProva.exe" direttamente dalla mia applicazione "AppMain.m".
Chiedo scusa per il disturbo.
Grazie, cordiali saluti.
Ulisse

2 Risposte

  • Re: Lanciare e Chiudere un file *.exe da Matlab

    Una possibile soluzione potrebbe essere usare il comando Windows da invocare nella callback del pushbutton tramite la funzione system
  • Re: Lanciare e Chiudere un file *.exe da Matlab

    Purtroppo il comando suggerito "taskkill", provato anche in precedenza, e adesso riprovato in tutte le modalità possibili ,(invocando il file *.exe per nome, mediante il PID e con i vari possibili parametri ) il controllo rimane al file lanciato, chiudendo il file *.exe da fuori Matlab, da sempre il messaggio: "taskkill non è riconosciuto come comando interno o esterno, un programma eseguibile o un file batch". (Con controllo Utente o Amministratore).
    Ho fatto delle lunghe ricerche su vari siti: la stragrande maggioranza ottiene i miei stessi risultati.
    Ma la cosa che mi sorprende é che qualcuno afferma che "taskkill" funziona con Windows 10 , Matlab R2021a. Io ho queste versioni di Windows e di Matlab: Mistero !?
    Sto cercando un articolo di Yair Altman di qualche anno fa che affermava che questo problema non é risolvibile ne previsto da Matlab . Cordiali saluti. Ulisse
Devi accedere o registrarti per scrivere nel forum
2 risposte