Как узнать: работает ли какая-либо сторонняя программа - VB
Формулировка задачи:
Добрый вечер. Появился вопрос: как можно проверить работает ли какая-то программа в данный момент.
Есть у меня один метод но мне он не подходит:
И если программа активна, выдаст ошибку 75.
Но если нет то удалит
Подскажите кто знает может обойтись тут Api функцией.
Спасибо.
Решение задачи: «Как узнать: работает ли какая-либо сторонняя программа»
textual
Листинг программы
Private Type PROCESSENTRY32 dwSize As Long cntUsage As Long th32ProcessID As Long th32DefaultHeapID As Long th32ModuleID As Long cntThreads As Long th32ParentProcessID As Long pcPriClassBase As Long dwFlags As Long szExeFile As String * 260 End Type Private Declare Function CreateToolhelp32Snapshot Lib "Kernel32" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long Private Declare Function Process32First Lib "Kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long Private Declare Function Process32Next Lib "Kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long Private Declare Sub CloseHandle Lib "Kernel32" (ByVal hPass As Long) Public Function ProcessExist(WhatProcess$) As Boolean Dim hSnapShot&, uProcess As PROCESSENTRY32, r As Long, ProcessName$ hSnapShot = CreateToolhelp32Snapshot(15&, 0&) uProcess.dwSize = Len(uProcess) r = Process32First(hSnapShot, uProcess) Do While r ProcessName = Left$(uProcess.szExeFile, IIf(InStr(uProcess.szExeFile, Chr$(0)) > 0, InStr(uProcess.szExeFile, Chr$(0)) - 1, 0)) If StrComp(ProcessName, WhatProcess, vbTextCompare) = 0 Then ProcessExist = True: Exit Do r = Process32Next(hSnapShot, uProcess) Loop CloseHandle hSnapShot End Function Sub test() MsgBox ProcessExist("notepad.exe") End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д