Rambler's Top100
Российский фонд помощи
Навигация
Главная
MS ACCESS
VB
ASP
PHP
Наши друзья
Поиск
Форум
Лента новостей
Новый сайт

Online
Рассылки Subscribe.Ru
Работа с MS Access
Подписаться письмом
Реклама на сайте
 
Главная arrow MS ACCESS arrow WMI-определить, работает ли процесс или программа
WMI-определить, работает ли процесс или программа Печать E-mail
Автор Daniel Pineault   
04.12.2020 г.
Когда-то, в одной из задач, мне было необходимо организовать взаимодействие из Access с определённым процессом (задачей) Он мог быть запущен или нет. Я организовал проверку его работы по ошибке. Если при обращении к процессу возвращалась ошибка, то процесс не был запущен. Но не для всех процессов это подходило. Потом я нашел в интернете более оригинальное определение работы нужного процесса. Может кому-то пригодится (Admin) Простой метод проверить, запущена ли программа (фактически процесс) в настоящее время на компьютере, локальном или удаленном (если установлены соответствующие разрешения для удалённой проверки такой информации) с помощью простого запроса WMI.
'--------------------------------------------------------------------------------------- 
' Procedure : WMI_IsProcessRunning
' Author : Daniel Pineault, CARDA Consultants Inc.
' Website : http://www.cardaconsultants.com
' Purpose : Determine if a process or Program is running or not
' Returns: True/False
' Copyright : The following is release as Attribution-ShareAlike 4.0 International

' (CC BY-SA 4.0) - https://creativecommons.org/licenses/by-sa/4.0/

' Req'd Refs: Uses Late Binding, so none required

'
' Input Variables:
' ~~~~~~~~~~~~~~~~
' sExeName : Name of the process to look for
' sHost : Host computer to query, omit for the local PC
'
' Usage:
' ~~~~~~
' WMI_IsProcessRunning("firefox.exe")
' WMI_IsProcessRunning("outlook.exe")
' WMI_IsProcessRunning("msaccess.exe", "HomePC01")
' WMI_IsProcessRunning("msaccess.exe", "192.168.100.12")
'
' Revision History:
' Rev Date(yyyy/mm/dd) Description
' **************************************************************************************
' 1 2010-Feb-03 Initial Release
' 2 2020-08-21 Renamed the Function
' Updated Proc Header

' Code updated

' Updated Error Handler
'---------------------------------------------------------------------------------------
Public
Function WMI_IsProcessRunning(sProcessName As String, Optional sHost As String = ".") As Boolean
On Error GoTo Error_Handler
Dim oWMI As Object 'WMI object to query about the PC's OS
Dim sWMIQuery As String 'WMI Query
Dim oCols As Object
Dim oCol As Object

Set oWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & sHost & "\root\cimv2")
sWMIQuery = "SELECT * FROM Win32_Process WHERE Name = '" & sProcessName & "'"
Set oCols = oWMI.ExecQuery(sWMIQuery)
If oCols.Count <> 0 Then WMI_IsProcessRunning = True

Error_Handler_Exit:
On Error Resume Next
Set oCols = Nothing
Set oWMI = Nothing
Exit Function

Error_Handler:
MsgBox "The following error has occurred" & vbCrLf & vbCrLf & _
"Error Number: " & Err.Number & vbCrLf & _
"Error Source: WMI_IsProcessRunning" & vbCrLf & _
"Error Description: " & Err.Description & _
Switch(Erl = 0, "", Erl <> 0, vbCrLf & "Line No: " & Erl) _
, vbOKOnly + vbCritical, "An Error has Occurred!"
Resume Error_Handler_Exit
End Function

Примечание.
WMI - Windows Management Instrumentation в дословном переводе — инструментарий управления Windows. WMI — это одна из базовых технологий для централизованного управления и слежения за работой различных частей компьютерной инфраструктуры под управлением платформы Windows.

Источник WMI-Determine If a Process or Program Is Running Or Not
Просмотров: 484

  Ваш коментарий будет первым

Добавить коментарий
Имя:
E-mail
Коментарий:



Код:* Code

 
Реклама на сайте
HiProg.com - Технологии программирования
Rambler's Top100 TopList