Полное руководство: как проверить, запущена ли программа в VB.NET

В VB.NET часто необходимо проверить, запущена ли на машине определенная программа или процесс. Эта информация может иметь решающее значение для различных задач автоматизации, мониторинга системы или контроля поведения приложений на основе присутствия или отсутствия определенных процессов. В этой статье блога мы рассмотрим несколько методов с примерами кода, которые помогут вам определить, работает ли программа в VB.NET.

Метод 1: использование Process.GetProcessesByName
Один из самых простых способов проверить, запущена ли программа, — использовать метод Process.GetProcessesByName. Этот метод возвращает массив процессов с указанным именем процесса. Вот пример:

Imports System.Diagnostics
Public Function IsProgramRunning(ByVal processName As String) As Boolean
    Dim processes As Process() = Process.GetProcessesByName(processName)
    Return processes.Length > 0
End Function

Метод 2: использование Process.GetProcesses
Метод Process.GetProcessesизвлекает все запущенные процессы на компьютере, позволяя вам проверить, есть ли среди них определенная программа. Вот пример:

Imports System.Diagnostics
Public Function IsProgramRunning(ByVal processName As String) As Boolean
    Dim processes As Process() = Process.GetProcesses()
    For Each process As Process In processes
        If process.ProcessName.Equals(processName, StringComparison.OrdinalIgnoreCase) Then
            Return True
        End If
    Next
    Return False
End Function

Метод 3: использование WMI (инструментария управления Windows)
WMI обеспечивает мощный способ взаимодействия с системной информацией. Вы можете использовать его, чтобы проверить, запущена ли программа. Вот пример:

Imports System.Management
Public Function IsProgramRunning(ByVal processName As String) As Boolean
    Dim query As String = $"SELECT * FROM Win32_Process WHERE Name = '{processName}.exe'"
    Dim searcher As New ManagementObjectSearcher(query)
    Return searcher.Get().Count > 0
End Function

Метод 4: использование PerformanceCounter
Класс PerformanceCounterможно использовать для мониторинга различных показателей производительности системы, включая информацию о процессах. Вот пример:

Imports System.Diagnostics
Public Function IsProgramRunning(ByVal processName As String) As Boolean
    Dim counter As New PerformanceCounter("Process", "ID Process", processName)
    Try
        Dim processId As Integer = CInt(counter.NextValue())
        Return processId > 0
    Catch ex As Exception
        Return False
    End Try
End Function

В этой статье мы рассмотрели несколько способов проверить, работает ли программа в VB.NET. Эти методы предоставляют вам различные подходы к выполнению задачи в зависимости от ваших конкретных требований. Используя предоставленные примеры кода, вы можете легко интегрировать эти методы в свои проекты VB.NET и улучшить функциональность вашего приложения.