Проверка на открытие\закрытие программы - VB
Формулировка задачи:
Всем привет! У меня запущена например программа "Проект1.exe"
Нужно сделать проверку
Если эта программа запущена, то закрыть ее, если нет - то ничего не делать.)))
Решение задачи: «Проверка на открытие\закрытие программы»
textual
Листинг программы
Private Sub Command1_Click() '// Сюда пишем полный путь к своей программе AppFind "c:\users\alex\desktop\Picture_Find.exe" End Sub Sub AppFind(ExecPath) Dim wmiObj, proCollection, scrShell, Proc, Query, AppName, Way Set wmiObj = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") ExecPath = Replace(ExecPath, "\", "\\") AppName = Mid(ExecPath, InStrRev(ExecPath, "\") + 1) '// Name в запросе можно опустить, т.к. имя процесса входит в состав ExecutablePath '// приведено исключительно с соображений демонстрации синтаксиса языка запросов WMI Query = "SELECT Handle FROM Win32_Process WHERE (Name = '" & AppName & "' AND ExecutablePath = '" & ExecPath & "')" Set proCollection = wmiObj.ExecQuery(Query) '// If proCollection.Count = 0 Then Exit Sub For Each Proc In proCollection Way = MsgBox("Найдено приложение с PID = " & Proc.Handle & vbLf & "Да - Завершить, Нет - Активировать.", vbYesNo) If (Way) = vbYes Then Proc.Terminate Else CreateObject("WScript.Shell").AppActivate Proc.Handle '// Handle - это на самом деле не Hwnd, а PID (это MS так назвала свойство :) End If Next End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д