Как узнать: работает ли какая-либо сторонняя программа - VB

Узнай цену своей работы

Формулировка задачи:

Добрый вечер. Появился вопрос: как можно проверить работает ли какая-то программа в данный момент. Есть у меня один метод но мне он не подходит:
Листинг программы
  1. Option Explicit
  2. Private Sub Command1_Click()
  3. Kill ("C:\file.exe")
  4. End Sub
И если программа активна, выдаст ошибку 75. Но если нет то удалит Подскажите кто знает может обойтись тут Api функцией. Спасибо.

Решение задачи: «Как узнать: работает ли какая-либо сторонняя программа»

textual
Листинг программы
  1. Private Type PROCESSENTRY32
  2.   dwSize As Long
  3.   cntUsage As Long
  4.   th32ProcessID As Long
  5.   th32DefaultHeapID As Long
  6.   th32ModuleID As Long
  7.   cntThreads As Long
  8.   th32ParentProcessID As Long
  9.   pcPriClassBase As Long
  10.   dwFlags As Long
  11.   szExeFile As String * 260
  12. End Type
  13.  
  14. Private Declare Function CreateToolhelp32Snapshot Lib "Kernel32" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
  15. Private Declare Function Process32First Lib "Kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
  16. Private Declare Function Process32Next Lib "Kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
  17. Private Declare Sub CloseHandle Lib "Kernel32" (ByVal hPass As Long)
  18.  
  19. Public Function ProcessExist(WhatProcess$) As Boolean
  20. Dim hSnapShot&, uProcess As PROCESSENTRY32, r As Long, ProcessName$
  21. hSnapShot = CreateToolhelp32Snapshot(15&, 0&)
  22. uProcess.dwSize = Len(uProcess)
  23. r = Process32First(hSnapShot, uProcess)
  24. Do While r
  25.   ProcessName = Left$(uProcess.szExeFile, IIf(InStr(uProcess.szExeFile, Chr$(0)) > 0, InStr(uProcess.szExeFile, Chr$(0)) - 1, 0))
  26.   If StrComp(ProcessName, WhatProcess, vbTextCompare) = 0 Then ProcessExist = True: Exit Do
  27.   r = Process32Next(hSnapShot, uProcess)
  28. Loop
  29. CloseHandle hSnapShot
  30. End Function
  31.  
  32. Sub test()
  33. MsgBox ProcessExist("notepad.exe")
  34. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы