Process.start

di il
18 risposte

Process.start

Salve
ho bisogno di lanciare un programma da un altro programma.
A suo tempo prendevo il percorso in cui era installato il file .exe dalle proprietà di una scorciatoia sulla barra delle applicazioni e lo aggiungevo al comando di apertura.
Ho fatto lo stesso usando
Process.start("percorso")
ma ottenendo solo errori (Probabilmente perchè ora quel dato è un richiamo di un richiamo di ...)
Dove lo trovo il file .exe dopo aver fatto l'installazione di un programma?
In quale cartella di Windows?

Grazie

18 Risposte

  • Re: Process.start

    Cosa hai messo effettivamente tra le virgolette?
  • Re: Process.start

    Posta il codice usando il tag code ed invia anche i messaggi di errore
  • Re: Process.start

    Sono andato da
    Process.start("<nomefile>.exe")
    fino a
    Process.start("file:///C:/Users/DELL/Desktop/Setup%20GAP%201.1/GAP-Serv-1.1.application")
    Quest'ultimo funziona solo sul computer dove ho fatto il programma e non in quelli dove lo installo
  • Re: Process.start

    L'errore è il banale
    "Impossibile trovare il file specificato"
  • Re: Process.start

    Ghiso65 ha scritto:


    Process.start("file:///C:/Users/DELL/Desktop/Setup%20GAP%201.1/GAP-Serv-1.1.application")
    Quest'ultimo funziona solo sul computer dove ho fatto il programma e non in quelli dove lo installo
    Usa un percorso in stile Windows, senza indicare il protocollo, tipo "C:\Users\DELL\Desktop\...".
    Verifica poi che il file sia effettivamente in quella locazione.
  • Re: Process.start

    Grazie Alka
    purtroppo il problema è proprio quello: in che cartella va ad inserire il .exe quando lo installa?
    Sapendo quello, volevo usare appunto un sistema come indicato da te ma non ho ancora capito dov'è
  • Re: Process.start

    Se non sai tu dove sta l'eseguibile, come facciamo a saperlo noi?
  • Re: Process.start

    Ghiso65 ha scritto:


    purtroppo il problema è proprio quello: in che cartella va ad inserire il .exe quando lo installa?
    Se stai usando la distribuzione dell'applicazione con ClickOnce, il programma viene installato in una locazione della cartella delle impostazioni dell'utente corrente, qualcosa del tipo
  • Re: Process.start

    Ghiso65 ha scritto:


    purtroppo il problema è proprio quello: in che cartella va ad inserire il .exe quando lo installa?
    P.S.: il percorso che ti ho indicato è approssimativo perché è ipotizzabile, anzi è praticamente sicuro, che su ogni macchina esso sia diverso, poiché se non cambia il nome dell'utente lo farà quello della directory in cui viene installato l'applicativo dalla distribuzione ClickOnce, in quanto mi pare di ricordare che venga usato anche un GUID oltre al nome dell'applicazione.
  • Re: Process.start

    Ok, chiariamo
    quando creo un programma in vb.net con visual studio poi creo l'installazione da Compilazione>Pubblica
    Quella cartella con il file setup la vado ad installare sulcomputer dove deve lavorare e l'installazione crea la voce richiamabile da Start ma non mi dice dove la mette
    A suo tempo era sufficiente aprire quella scorciatoia e leggere nelle proprietà la cartella dove era stato copiato il file .exe ora non più
    Forse è colpa mia che dovrei configurare meglio il setup e non accontentarmi delle opzioni di default...
    ma fino ad oggi non era stato necessario...
    Non sto usando una distribuzione da Web ma una installazione in locale
  • Re: Process.start

    Ghiso65 ha scritto:


    Ok, chiariamo [...]
    Da tutto questo "chiarimento", non si capisce onestamente a cosa ti serva quindi Process.Start().

    Ghiso65 ha scritto:


    quando creo un programma in vb.net con visual studio poi creo l'installazione da Compilazione>Pubblica
    Quella cartella con il file setup la vado ad installare sulcomputer dove deve lavorare e l'installazione crea la voce richiamabile da Start ma non mi dice dove la mette
    Certamente. ClickOnce è un sistema per creare velocemente pacchetti di installazione, da distribuire copiando il setup o predisponendo una pagina Web per il download. Essendo una sorta di standard e implementando specifici automatismi, come ad esempio aggiornare in automatico l'applicazione, è evidente che alcune cose devono essere forzatamente regolate dal sistema e non siano configurabili, pena l'impossibilità di sfruttare quella tecnologia per svolgere ciò che è in grado di fare.

    Ghiso65 ha scritto:


    A suo tempo era sufficiente aprire quella scorciatoia e leggere nelle proprietà la cartella dove era stato copiato il file .exe ora non più
    Che io sappia, da tempo immemore quel collegamento non ha mai puntato all'eseguibile, bensì a una sorta di "launcher" che si premura appunto di verificare preventivamente la presenza di aggiornamenti del pacchetto, cosa che non potrebbe installare qualora l'eseguibile venisse lanciato, perché il programma in esecuzione bloccherebbe ovviamente l'installazione del file aggiornato.

    Ghiso65 ha scritto:


    Forse è colpa mia che dovrei configurare meglio il setup e non accontentarmi delle opzioni di default...
    Oppure forse dovresti utilizzare un altro sistema per l'installazione del tuo software, ma al netto di aver compreso come lavora, non è chiaro ancora come tutto questo costituisca un problema.

    Ghiso65 ha scritto:


    ma fino ad oggi non era stato necessario...
    E oggi invece cosa è successo? Perché hai così interesse a scoprire qual è la cartella scelta dal setup per l'installazione del tuo applicativo? In quale modo la scelta di questa locazione ti procura un problema?

    Ancora non c'è chiarezza su quella che è la reale problematica da risolvere.
  • Re: Process.start

    Alka ha scritto:


    Chiarisci meglio lo scenario perché non è chiaro da quale programma tu debba avviare questo eseguibile, se devi avviare il file .application, oppure se è da quel programma che devi eseguire qualcos'altro.
    l'eseguibile lanciato da Start per conto suo funziona perfettamente
    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'è...
  • Re: Process.start

    Alka ha scritto:


    Che io sappia, da tempo immemore quel collegamento non ha mai puntato all'eseguibile, bensì a una sorta di "launcher" che si premura appunto di verificare preventivamente la presenza di aggiornamenti del pacchetto, cosa che non potrebbe installare qualora l'eseguibile venisse lanciato, perché il programma in esecuzione bloccherebbe ovviamente l'installazione del file aggiornato.
    Alka, grazie per la pazienza
    Forse potrei indicare nel <nomefile> quello che tu chiami "launcher"?
  • Re: Process.start

    Se non sai dov'è sai però il nome e l'estensione , prova qualcosa di simile https://stackoverflow.com/questions/17847304/quickest-way-to-use-c-sharp-to-programmatically-search-entire-computer-for-sever
Devi accedere o registrarti per scrivere nel forum
18 risposte