Следите за тем, чтобы ваши приложения VBA работали с этим скользким сценарием

контролировать работу приложенияПозвольте мне нарисовать сценарий для вас. Допустим, вы создали слайд-шоу с прокруткой Powerpoint, которое вы хотите постоянно показывать на большом телевизионном дисплее во время работы. Или, может быть, у вас есть приложение Excel, которое включает в себя форму ввода для ваших работников для ввода информации в базу данных.

Существует множество причин, по которым вам может потребоваться отслеживать, запущено ли приложение на каком-либо удаленном компьютере. Это может звучать как сложное требование высокого уровня, что вам понадобится ИТ-специалист, чтобы помочь вам, но я здесь, чтобы сказать вам, что это задача, которую вы можете выполнить самостоятельно.

Вы доверились нам, чтобы показать вам, как выполнять другие, казалось бы, сложные задачи с VBA, например отправлять электронные письма из Excel.

, передавая информацию в буфер обмена Windows

и интеграция Excel

данные в документ Word.

Теперь все эти вещи были относительно пассивными. Отправка электронной почты или передача данных из одного приложения в другое на компьютере — это одно, но в этом случае мы собираемся отслеживать одно приложение, запущенное на одном компьютере, а другое приложение — на удаленном компьютере. Это возможно — поверь мне.

Система удаленного мониторинга приложений

По сути, это система, которая может превратить вас в героя на работе с помощью нескольких простых строк кода на обоих концах установки.

Как будет выглядеть установка? По сути, эта установка может работать с несколькими удаленными компьютерными системами, которые могут отображать что-либо на большом телевизионном дисплее, или запускать экран ввода данных Excel, или что-либо еще, что является приложением Office с VBA.

Скрипт рукопожатия VBA

В этом примере я собираюсь создать один компьютер, на котором приложение VBA будет записывать файл на жесткий диск локального компьютера в каталог c: \ temp \ handshaking \ каждые 5 секунд. Затем компьютер удаленного мониторинга будет периодически проверять этот каталог на наличие файлов. Если файл существует, он удалит его (потому что, если удаленная программа запущена, он должен просто заново создать файл). Если файл не существует, он выдаст предупреждение о том, что приложение на этом компьютере больше не работает.

Вот как это выглядит.

контролировать работу приложения

Во-первых, я покажу вам, как вы можете добавить скрипт VBA в локальное приложение Office, которое будет записывать файл квитирования каждые 5 секунд (если файл еще не существует).

Следите за тем, чтобы ваши приложения VBA работали с помощью этого простого скрипта handshaking2

В моем примере я создал две кнопки, чтобы показать вам, как работает скрипт, но в вашем приложении вы запустите скрипт «Start Handshaking» при запуске приложения. В Excel это Рабочий лист -> Активировать функцию.

Прежде чем приступить к работе со сценарием, который будет писать файл подтверждения связи, необходимо активировать ссылку на среду выполнения сценариев Microsoft — это позволит вашему приложению VBA получить доступ к инструментам управления файлами Windows. Вы можете получить доступ к этому в редакторе VBA, щелкнув меню Сервис -> Ссылки.

приложение монитора перестало работать

Просто прокрутите вниз, выберите Microsoft Scripting Runtime, и все готово.

«Регулярно проверяйте, существует ли файл подтверждения связи.
«Если это не так, напишите новый файл.
'Файл назван с идентификатором компьютера, поэтому монитор знает, какой
у компьютера проблема.
'Сценарий таймера для регулярной проверки файла c: \ scripts \ handshake \.
Dim IntTime As Integer
Dim sFile As String
Dim sPath As String
Dim SFname As String
Дим я как целое
intTime = 5
я = FreeFile
TimerOn = True
sFile = "c: \ Temp \ MyComputerName.txt"
В то время как TimerOn = True
If Second (Now)> (intTime + 5) Or Second (Now) = 0 Тогда
'Проверьте, существует ли файл
«Если нет, воссоздать его
Если Dir (sFile) = - Тогда
«Файл не существует, воссоздать его
MsgBox "создал"
Открыть sFile для вывода как #i
близко
Конец, если
intTime = Second (сейчас)
Листы ("sheet1"). Диапазон ("a1"). Значение = время
Конец, если
DoEvents
венед

[/ NOEDIT]

Этот скрипт имеет только 16 строк, если вы не учитываете определения переменных, это простой скрипт! Все, что он делает, это устанавливает цикл таймера, который запускается каждые 5 секунд. Он проверяет, существует ли файл подтверждения связи. Если это не так, он воссоздает файл.

Если подумать, это простой, творческий способ рассказать миру о том, что приложение живо и работает. Позвольте мне показать вам, что я имею в виду. Когда я нажимаю кнопку «Начать рукопожатие» и затем захожу в каталог c: \ temp \ handshaking \, я вижу, что мой VBA-скрипт создал новый файл. Это пустой файл, но это не имеет значения — важно то, что файл существует.

приложение монитора перестало работать

Чтобы проверить мой сценарий, я вручную удаляю текстовый файл из каталога.

приложение монитора перестало работать

Через несколько секунд файл снова появится снова.

контролировать приложение

Это означает, что на этом этапе любой человек или что-либо, не относящееся к вашему приложению, может проверить, открыта ли ваша программа, удалив этот файл, а затем проверив, появляется ли файл снова. Просто — но эффективно!

Создание сценария удаленного мониторинга

Теперь, когда у вас есть сценарий рукопожатия VBA, работающий на всех ваших удаленных приложениях, вы захотите создать центральную программу, запущенную на каком-либо сервере или, возможно, на вашем собственном рабочем компьютере, которая будет выходить и контролировать, работают ли эти удаленные приложения.

Лучший способ сделать это с помощью сценария, который выполняется в фоновом режиме без интерфейса GUI. Все, что вы хотите, чтобы скрипт делал, это предупреждает, когда любое из удаленных приложений перестает работать. Идеальным инструментом для этого приложения является скрипт Windows. Просто создайте новый текстовый файл с именем handshaking.wsf и вставьте следующий скрипт.

Option Explicit
On Error Resume Next
Dim strHost
Dim strComputerName
Dim ReturnCode
Dim strLine
Dim Shell
Dim oFSO, sFile, oFile, sText
Dim oFSO2, sFile2, oFile2, sText2
Dim strFailedList
Set Shell = wscript.createObject("wscript.shell")
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFSO2 = CreateObject("Scripting.FileSystemObject")
sFile = "\\MyComputerName\c$\users\owner\scripts\handshaking\terminallist.ini"
strFailedList = ""
If oFSO.FileExists(sFile) Then
Set oFile = oFSO.OpenTextFile(sFile, 1)
Do While Not oFile.AtEndOfStream
sText = oFile.ReadLine
If Trim(sText)  - Then
strComputerName = Trim(sText)
sFile2 = "\\" & strComputerName & "\c$\users\owner\scripts\handshaking\" & strComputerName & ".txt"
	If oFSO2.FileExists(sFile2) Then
             oFSO2.DeleteFile sFile2, True
	Else
WScript.Echo strComputerName & " is not running the software!"
End If
End If
Loop
oFile.Close
Else
WScript.Echo "The file was not there."
End If
Set Shell = Nothing
Set oFSO = Nothing
WScript.Quit

Этот сценарий использует подсистему Windows File, чтобы сначала открыть файл terminallist.ini, в котором в основном находятся все файлы удаленного компьютера, к которым вы пытаетесь получить доступ. В этом случае, для моего теста, он имеет три строки, содержащие MyComputerName, MyOtherComputer и YetAnotherComputer.

Сценарий, приведенный выше, перейдет к вашему списку компьютеров, получит доступ к удаленному компьютеру по сетевому пути (очевидно, вы должны быть администратором), и, если файл существует, он удалит его. Если файл не существует, он выдаст предупреждение.

Запустив мой сценарий мониторинга WSF, он не оповещал на первом компьютере, потому что файл был найден, но оповещал на двух других, потому что эти удаленные приложения еще не существуют и не работают.

Следите за тем, работают ли ваши приложения VBA с помощью этого простого скрипта handshaking8

Теперь, чтобы убедиться, что ваше программное обеспечение для мониторинга регулярно запускается и проверяет, что ваша программа работает на всех ваших удаленных компьютерах, вам нужно настроить указанный выше сценарий WSF как запланированное задание, которое выполняется каждые 5 минут.

Просто создайте задачу на вашем сервере или главном ПК, которая указывает на сценарий.

контролировать приложение

И создайте неопределенное расписание, которое запускает ваш скрипт мониторинга каждые 5 минут.

контролировать работу приложения

Теперь, используя только эти два простых сценария — один фрагмент VBA, встроенный в любую из ваших существующих программ Office, и один сценарий Windows, который постоянно контролирует эти удаленные программы — вы будете предупреждены сразу же, как только кто-то закроет эту удаленную программу или компьютер выключится. или программа умирает по любой причине.

Если вы работаете в среде Windows и создали множество критически важных приложений с использованием программного обеспечения Office, этот метод является очень быстрым и дешевым (бесплатным!) Способом удаленного мониторинга всех этих критически важных приложений.

Сделайте попытку и дайте мне знать, как это сработало для вас? Удалось ли вам удивить всех ваших коллег тем, как быстро вы узнали, когда одна из ваших систем вышла из строя? Поделитесь своими мыслями и опытом в разделе комментариев ниже.

Кредиты изображения: Молодой человек, указывающий на компьютер через Shutterstock

Ссылка на основную публикацию
Adblock
detector