This is to start an external executable AS A SEPARATE PROCESS using System.Diagnostics; /// /// Path dell'eseguibile da richiamare. /// string exe_path = @"C:\ms4w\tools\mapserv\shp2img.exe"; /// /// Eventuali argomenti all'eseguibile. /// string argument1 = "-argomento1"; string argument2 = @"C:\ms4w\Apache\htdocs\tmp.png"; // Prima di far partire il processo se ne indicano le proprietà // Si indica l'eseguibile che si vuol far partire ProcessStartInfo startInfo = new ProcessStartInfo(exe_path); // Si indicano gli eventuali argomenti da passare all'eseguibile startInfo.Arguments = argument1 + " \"" + argument2 + "\""; // Queste proprietà evitano di mostrare la schermata del prompt durante l'esecuzione startInfo.UseShellExecute = false; startInfo.CreateNoWindow = true; // Con queste istruzioni si fa effettivamente partire il processo Process process = new Process(); process.StartInfo = startInfo; process.Start(); // Con queste istruzioni ne attendiamo il completamento e lo chiudiamo process.WaitForExit(); process.Close();