Как узнать, запущено ли уже приложение.
Есть ли команда типа [COLOR="Navy"]IsRunning[/COLOR]?
Есть ли команда типа [COLOR="Navy"]IsRunning[/COLOR]?
Подобный вопрос рассматривался вот здесь:
http://forum.codenet.ru/showthread.php?t=27082
А указанной ветке форума написано:
Это ж вроде, не VBA? Потому что VBA заругался на строке
[COLOR="Navy"]Option Explicit[/COLOR], что мол [COLOR="Navy"]Invalid Inside Proc[/COLOR]
Разумеется - не VBA. Это примеры VB-сценариев. Однако ничто не мешает использовать любой из приведённых кодов в составе макроса.
Надо внести лишь минимальные изменения:
- добавить строку Sub MyName() в начало кода, [color=blue]между[/color] строками Option Explicit и следующей за ней (здесь [color=blue]MyName[/color] - это гипотетическое имя Вашего макроса);
- заменить выражение WScript.Echo на MsgBox;
- в конец кода добавить строку End Sub.
Итого:
Sub Example()
Dim wmiObj, proCollection, scrShell
Set wmiObj = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set proCollection = wmiObj.ExecQuery("Select * from Win32_Process Where Name = 'Calc.exe'")
If proCollection.Count = 0 Then
MsgBox "Калькулятор не запущен."
Set scrShell = CreateObject("WScript.Shell")
scrShell.Run "Calc.exe", 1
Else
MsgBox "Калькулятор уже запущен."
End Sub
End If
[COLOR="Navy"]Option Explicit[/COLOR], что мол [COLOR="Navy"]Invalid Inside Proc[/COLOR]
Заругался потому, что эта строка должна стоять за пределами тела макроса (причём она должна быть первой в модуле кода ).