VB.Net/Windows System/Process
Содержание
Check Existing Duplicate Process
 
Imports System.Threading
Module Module1
    Sub Main()
        Dim MatchingNames As System.Diagnostics.Process()
        Dim TargetName As String
        TargetName = System.Diagnostics.Process.GetCurrentProcess.ProcessName
        MatchingNames = System.Diagnostics.Process.GetProcessesByName(TargetName)
        If (MatchingNames.Length = 1) Then
            Console.WriteLine("Started...")
        Else
            Console.WriteLine("Process already running")
        End If
    End Sub
End Module
Checking for a Previous Instance
  
Module MainModule
    Public Function PrevInstance() As Boolean
        If UBound(Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName)) > 0 Then
            Return True
        Else
            Return False
        End If
    End Function
End Module
Get current Running Process
 
Imports System.Threading
Public Class MainClass
   Public Shared Sub Main()
        Dim ProcessList As System.Diagnostics.Process()
        ProcessList = System.Diagnostics.Process.GetProcesses()
        Dim Proc As System.Diagnostics.Process
        For Each Proc In ProcessList
            Console.WriteLine("Name {0} ID {1}", _
              Proc.ProcessName, Proc.Id)
        Next
   End Sub
End Class
Get Previous Instances
  
Imports System.Windows.Forms
Public Class Form1
    Inherits System.Windows.Forms.Form
    Public Sub New()
        MyBase.New()
        InitializeComponent()
    End Sub
    Friend WithEvents Label1 As System.Windows.Forms.Label
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.Label1 = New System.Windows.Forms.Label()
        Me.SuspendLayout()
        "
        Me.Label1.Location = New System.Drawing.Point(16, 16)
        Me.Label1.Size = New System.Drawing.Size(296, 23)
        Me.Label1.TabIndex = 0
        Me.Label1.Text = "Run the final .EXE version of this application."
        "
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
        Me.ClientSize = New System.Drawing.Size(360, 157)
        Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.Label1})
        Me.ResumeLayout(False)
    End Sub
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If PrevInstance() = True Then
            Dim Processes() As Process
            Processes = Diagnostics.Process.GetProcessesByName( Diagnostics.Process.GetCurrentProcess.ProcessName)
            AppActivate(Processes(0).Id)
            Application.Exit()
        End If
    End Sub
    Public Function PrevInstance() As Boolean
        If Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName).Length > 1 Then
            Return True
        Else
            Return False
        End If
    End Function
End Class
Start a Process
 
Imports System
Imports System.Data
Imports System.Windows.Forms
Imports System.Drawing
Imports System.Diagnostics
Imports System.Drawing.Printing
Public Class MainClass
    
    Shared Sub Main()
        
        Dim new_process As New Process
        new_process.StartInfo.FileName = Application.ExecutablePath
        new_process.StartInfo.Verb = "Open"
        new_process.Start()
    End Sub
End Class
Use Process to Start IExplore.exe
 
Imports System.Windows.Forms
Public Class MainClass
   Public Shared Sub Main()
        Try
            System.Diagnostics.Process.Start("IExplore.exe", "www.vbex.ru")
        Catch
            MessageBox.Show("Error launching Internet Explorer")
        End Try
   
   End Sub
End Class