Controllare se il programma è già avviato

mercoledì 21 giugno 2006 - 22.05

escaflowne Profilo | Junior Member

Ciao a tutti,
esiste un modo per controllare, prima dell'avvio dell'applicazione, se questa è già in esecuzione?

Grazie a tutti

atsanna Profilo | Newbie

Ciao.

Vedi se questo codice ti può essere d'aiuto.

All'interno del form principale (Quello di avvio) inserisci questa porzione di codice:

'Verifico che il programma non sià già in esecuzione If IsRunning() = True Then MsgBox("Il programma è già in esecuzione") Application.Exit() End End If

Poi inserisci, magari in un modulo a parte, questa funzione:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Se cercherai di avviare una seconda volta il tuo programma, un messaggio ti avviserà che "è già in esecuzione" e non ne permetterà l'avvio.

Spero di esserti stato utile.

A Presto.
Antonio Sanna

19018 Profilo | Expert

La soluzione del controllo tra i processi attivi ve bene ma non è la strada migliore da seguire perchè non è molto performante rispetto all'utilizzo di System.Threading.Mutex.

Prova così :

[STAThread] static void Main() { bool ok; System.Threading.Mutex m = new System.Threading.Mutex(true,"Stringa_che vuoi", out ok); if (!ok) { MessageBox.Show("Programma già in esecuzione."); return; } Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); GC.KeepAlive(m); }

Ciao

Stefano Passatordi

http://blogs.dotnethell.it/stem/

Cteniza Profilo | Guru

Se usi visual basic 2005 c'è StartupNextInstance.
Altrimenti:
http://community.visual-basic.it/lucianob/archive/2006/04/30/17126.aspx

escaflowne Profilo | Junior Member

grazie a tutti quanti
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5