Eccomi di nuovo...
visto che il programma è tuo immagino che tu sappia spiegarmi come mai succedono cose anomale...

Ho preso spunto dal tuo codice e tutto filerebbe bene se solo non si verificasse questo errore, che sinceramente non capisco:

codice:
void tmr_Tick(object sender, EventArgs e)
{
    Process[] pc = Process.GetProcesses();
    ...
}
Quando il programma elabora questa riga di codice, ecco cosa mi risponde:

Eccezione non gestita di tipo "System.InvalidOperationException" in system.dll

Informazioni aggiuntive: Impossibile ottenere informazioni sui processi dal computer remoto.

Il programma "[3612] ProcMonitor.exe" è terminato con il codice 0 (0x0).


Se invece lancio il tuo eseguibile... funziona.

Tieni conto che io ho Visual Studio 2003 e non 2005... ma la logica di programmazione non penso sia cambiata poi tanto!! NO?

Aggiungo anche che se, puramente per debug, eseguo un'istruzione del genere...
codice:
    Process pc = Process.GetCurrentProcess();
    lblStato.Text = pc.Id.ToString();
Questa funziona!! Dunque non capisco come mai non riesca a restituire la lista processi!

Tu scommetto che lo sai!