Ciao.
Innanzitutto grazie del tempo che hai speso per le risposte.
Non serve che mi ringrazi...questo argomento intaressa molto anche a me.

Ho dato un'occhiata al codice. Prima di dire altro vorrei farti notare un paio di cose: invece di scrivere
codice:
Private Sub iconizza_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles iconizza.Click
        Me.WindowState = 1
    End Sub
che comunque è corretto, è più comprensibile se scrivi questo
codice:
Private Sub iconizza_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles iconizza.Click
        Me.WindowState =  FormWindowState.Minimized
    End Sub
Questa è solo un'accortezza ma quello che segue è già più "grave":
codice:
Private Sub chiudi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chiudi.Click
        End
    End Sub
End è una vecchia istruzione rimasta da vb, che chiude in modo brutale l'applicazione, senza deallocare correttamente le risorse. Sarebbe meglio e anche più corretto scrivere:
codice:
Private Sub chiudi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chiudi.Click
        Me.Close()
    End Sub

Ora veniamo al punto:
ho visto il tuo link, che ha esposto l'unica maniera possibile di fare questa cosa: usare le API di Windows. Ti posto il codice che ho sviluppato:
codice:
Public Class Form1
    'Serve per importare l' API che ci serve
    Private Declare Function SetActiveWindow Lib "User32" (ByVal hwnd As Long) As Long


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'Dichiari il processo che vuoi aprire
        Dim ProcessName As String = "firefox"
        'Scorri i processi attivi
        For Each p As Process In Process.GetProcesses
            'e se quello che cerchi è contenuto nel nome
            If p.ProcessName.Contains(ProcessName) Then
                'lo setta come finestra attiva
                SetActiveWindow(p.MainWindowHandle.ToInt64)
                'iconizza il programma
                Me.WindowState = FormWindowState.Minimized
                'ed esce dalla sub
                Exit Sub
            End If
        Next
        'Se non è già uscito dalla sub vuol dire che il processo non è attivo, quindi mostra un messaggio
        MessageBox.Show("Processo non attivo", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error)
    End Sub
End Class
A livello teorico dovrebbe funzionare, in pratica...no. Il programma non restituisce errori ma non so perchè non imposta la finestra attiva. Continuerò a cercare, comunque credo dovrai aspettare la risposta di gente che ne sà più di me.
Mi dispiace.