sintassi:
oggetto.StartInfo.FileName = "cmd";
oggetto.StartInfo.Arguments = "/C comando";
oggetto.StartInfo.WindowStyle = ProcessWindowStyle.opzione;
oggetto.Start();
oggetto.WaitForExit();
esempio: apro la cartella Documenti usando gestione risorse
Process.Start(@"C:\Documenti\");
esempio: apro il file testo.txt in Documenti con il software di deault
Process.Start(@"C:\Documenti\testo.txt");
esempio: apro il file testo.txt in Documenti con Notepad
Process.Start("notepad.exe", @"C:\Documenti\testo.txt");
esempio: apro un URL per Inetrent
Process.Start("http://www.google.it");
esempio: se il processo non é già attivo allora faccio partire l'applicazione
questo comando é comodo per evitare di attivare più volte un programma semplicemente inserendo nei Main l'attivazione se non già attivo
Process[] processi = Process.GetProcessesByName("nome processo");
if (processi.Length <= 1)
{
Application.EnableVisualStyles();}
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
esempio: controllo se il processo vlc é attivo ed in caso trovo il nome del file che sta eseguendo in prima istanza [0]
Process[] processi = Process.GetProcessesByName("vlc");
fileuso = Path.GetFileNameWithoutExtension(processi[0].MainWindowTitle.Replace(" - Lettore multimediale VLC", "")); dal titolo tolgo le stringe in più per ricavara il nome del file
esempio: verifica i processi notepad aperti e se gestisce un certo file uccidilo
Process[] processi = Process.GetProcessesByName("notepad"); lista tutti i processi notepad
foreach (Process processo in processi) scorriamoli tutti
{
if (processo.MainWindowTitle.Contains("testo.txt")) se il titolo contiene il nome del file}
{processo.Kill(); uccidi il processo}
esempio: verifica i processi Excel aperti ed in caso avvisa che é aperto, se rispondi sì uccidili tutti
Process[] process = Process.GetProcessesByName("Excel");
if (process.Length > 0)
{
DialogResult scelta = MessageBox.Show("Excel risulta già aperto", "Excel già aperto", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2);}
if (scelta == DialogResult.Yes)
{Process[] processo = Process.GetProcessesByName("Excel"); occorre rifare la lista perché se dopo il messaggio si chiude Excel la vecchia lista risulta non corretta}
if (processo.Length > 0)
{foreach (Process p in processo)}
{p.Kill();}
esempio: controllo se il processo vlc é aperto ed in caso lo chiudo
Process[] processi = Process.GetProcessesByName("vlc");
if (processi.Length > 0) processi[0].CloseMainWindow(); chiudo il processo
esempio: uccido tutti i procesi Excel aperti
Process[] processi = Process.GetProcessesByName("excel");
foreach (Process processo in processi)
{
processo.Kill();}
sintassi:
Process p = Process.Start(processo,parametro); creo oggetto p del processo
p.WaitForExit(); resta in attesa della chiusura del processo
....; comandi eseguiti dopo la chiusura
esempio: leggo un file testo.txt con notepad.exee poi lo cancello
Process p = Process.Start("notepad.exe",@"C:\testo.txt");
p.WaitForExit();
File.Delete(@"C:\testo.txt");
esempio non funziona: leggo un file testo.txt con il porgramma di default e poi lo cancello
Process p = Process.Start(@"C:\testo.txt");
p.WaitForExit();
File.Delete(@"C:\testo.txt");
sintassi:
p.WaitForExit(X); indicare i millisecondi di attesa ex: 10000
propietà finestra