Oppure

Loading
05/05/10 17:54
ianna93
Salve a tutti, sono nuovo. Mi servirebbe un aiuto:
devo avviare un file eseguibile e passargli dei paramenti. Facile, no?: Process.Start("file.exe", "/parametro";). Peccato che non avvii per nulla il file, nemmeno se non gli passo i parametri. Con un altro file va tutto bene, con un altro ancora se lo apro normalmente funziona, ma se gli passo dei parametri non parte più! Aiutatemi voi: quale comando usate di solito voi? come lo usate?
aaa
05/05/10 18:00
Che tipo di programma è?

Cosa fa file.exe?

Come ti accorgi che non si avvia?

Se lo avvii da riga di comando, funziona?
06/05/10 7:01
Thejuster
prova a postare il codice dove esegui l'avvio del processo.

non siamo maghi che riusciamo a vedere da quì il tuo sorgente :D
mire.forumfree.it/ - Mire Engine
C# UI Designer
06/05/10 8:09
Mi sembra scontato che l'eseguibile che vuoi lanciare deve stare nella stessa cartella dell'eseguibile del programma ... altrimenti, come lo dovrebbe trovare?

Oppure indica tutto il percorso assoluto ...
06/05/10 18:51
ianna93
Scusate il ritardo, eccomi eccomi!!

Da "nessuno":
Che tipo di programma è?
Cosa fa file.exe?
Come ti accorgi che non si avvia?
Se lo avvii da riga di comando, funziona?

è un exe compilato con "bat to exe converter", praticamente è una specie di archivio in exe. Questo exe una volta aperto dovrebbe generare un file *.log. Mi accorgo che non si avvia perché il programma in c# che dovrebbe prima avviare l'exe poi gestire il *.log che poi non trova.
Process.Start(sistema + "\pwmf.exe");
string pwmf = File.ReadAllText(sistema + "\pwmf.log");

Se avvio l'exe normalmente parte senza problemi.

Un altro problema con Process.Start si è verificato quando ho cercato di raggirare il problema: volevo avviare messenpass (non so se lo conoscete quello per le password di msn) e passagli il parametro "/stext file.log". Da dos tutto perfetto, ma da c# molto meno. Il programma si avvia se scrivo
Process.Start(sistema + "\messenpass.exe");
ma non appena gli passo il parametro (ho provato in due modi)
Process.Start(sistema + "\messenpass.exe", "/stext pw.log");
Process.Start(sistema + "\messenpass.exe", "/stext \"pw.log\"");

non parte niente e non succede nulla e il programma (quello in c#) continua il suo cammino!
Ripeto che da dos TUTTO funziona corretamente!
Grazie per l'attenzione attendo aiuti:hail:
aaa
06/05/10 19:16
Ma tutti i file di cui parli (exe, log ...) in quale cartella si trovano ...?
06/05/10 19:27
ianna93
system32
dici che centra anche dove?
aaa
06/05/10 21:56
Ovvio che c'entra ...

Per i .exe va bene in \windows\system32 ma per i .log e quelli passati come parametri, no.

Devono stare nella cartella corrente d'esecuzione oppure indica il percorso completo.