Ghiso65 ha scritto:
Siccome può capitare che lo debba lanciare da un altro programma, vorrei usare process.start(<nomefile>) per lanciarlo senza farlo ripartire da Start
Ma se non so dov'è...
Ok, adesso finalmente la situazione è chiara.
L'unica soluzione - anche se si tratta un po' di un escamotage - è quella di implementare all'interno del programma da lanciare una "procedurina" che vada a memorizzare in una locazione nota (del disco, del Registro di Windows, o altro) un file o una chiave contenente il percorso dell'applicazione, informazione che l'eseguibile può recuperare facilmente da sé stesso.
In questo modo, l'eseguibile informa eventuali altri programmi "interessati" in merito alla sua ultima posizione nota, consentendo loro di recuperarne il percorso e di lanciarlo.
Una seconda alternativa, più complessa ma forse più pulita, potrebbe essere quella di associare l'eseguibile a un protocollo una volta lanciato, come fanno ad esempio
Zoom,
Teams e
Skype, che potrebbero essere lanciati anche da un link su una pagina Web, e andare a recuperare quella informazione dal Registro di Windows quando l'eseguibile deve essere lanciato, in quanto la chiave contiene l'ultimo percorso noto del file.
Sono ovviamente proposte teoriche, da valutare ed eventualmente codificare.
L'alternativa già proposta è quella di cercare il file su disco: l'operazione potrebbe essere lunga, ma se si fa in modo di memorizzare il percorso da qualche parte una volta che l'eseguibile è stato trovato, non è necessario fare altre ricerche (a meno che il file non venga spostato o reinstallato altrove e non venga quindi trovato nel percorso attuale).
Ciao!