Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [C#] Problema con comandi DOS.

    ciao, a tutti, ho cercato un po in giro ma non ho trovato nulla a riguardo, allora io voglio eseguire un programma da cmd, il programma si trova all' interno di una cartella che è a sua volta all'interno del mio programma, ecco il codice:

    codice:
    private void btnstartprogram_Click(object sender, EventArgs e) { 
    
    string command =System.Environment.CurrentDirectory+@"\Programfolder\prog.exe"; 
    
    Send_Commands(command); 
    } 
    private void Send_Commands(string command) { 
    
    Process startprogr = new Process(); 
    startprogr.StartInfo.CreateNoWindow = true; 
    startprogr.StartInfo.UseShellExecute = false; 
    startprogr.StartInfo.FileName = "cmd.exe"; 
    startprogr.StartInfo.Arguments = "/c" + command; startprogr.StartInfo.RedirectStandardOutput = true; 
    startprogr.Start(); 
    
    outputcmd.Text += startprogr.StandardOutput.ReadToEnd(); 
    
    startprogr.WaitForExit(); 
    
    }
    grazie a tt per le future risposte e grazie per l' attenzione .

  2. #2
    non so come mai ma nn riesco a farlo funzionare, il promp o non esegue nessun comando oppure si apre e si chiude istantaneamente.

  3. #3
    Scusa, ma che senso ha farlo partire usando cmd.exe come intermediario? Lancia direttamente l'eseguibile in questione...
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    si forse è meglio comunque non so come mai ma non riesco a trovare il file dentro la cartella:
    se cerco il file "progr.exe" dentro la cartella "riferimenti" a sua volta dentro la cartella del programma non si avvia, avevo provato qualcosa del genera ma non funziona:


    Process.Start(system.environment.currentdirectory+ @"\Riferimenti\progr.exe");


    grazie.

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Prova a visualizzare il risultato di

    system.environment.currentdirectory

    e vedi a quale cartella si riferisce il programma in quel momento
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    già provato, mi restituisce la cartella esatta .

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non intendevo da Visual Studio ma eseguendo l'exe nel computer e nella posizione da cui sarà eseguito.

    Ovviamente *non* dovrai utilizzare il cmd.exe ma direttamente il programma da eseguire
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    sisi ho provato anche normalmente, e per fare un'ulteriore verifica ho provato:
    codice:
     string path = AppDomain.CurrentDomain.BaseDirectory + @"\Riferimenti\progr.exe"; 
                if (Directory.Exists(path))
                {
                    Process.Start(path);
                }
                else
                {
                    MessageBox.Show("Riferimento al programma è stato spostato o eliminato, ripristinare la posizione", "Guida Mancante", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation);
                }
    e mi restituisce la message, quindi è come se la path non esistesse, ma provando ad eseguire la path da explorer è tutto ok e mi apre il file, nn so + dove sbatterela testa, ho provato anche con altri metodi per ricavare la directory corrente ma niente, 2 di picche.

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Attenzione ... una cosa è una "directory" e un'altra un file ...

    Deve essere

    codice:
    string path = AppDomain.CurrentDomain.BaseDirectory + @"\Riferimenti";
    
    if (Directory.Exists(path))
       Process.Start(path + @"\progr.exe");
    else
       ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    ok grazie 1000, mi vergogno di me stesso come ho fatto a intoppare in una c*****a come questa.... vabbuo grazie mille .

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.