Sledujte, zda vaše aplikace VBA běží s tímto úhledným skriptem

  • Owen Little
  • 0
  • 1329
  • 116
reklama

Dovolte mi namalovat scénář pro vás. Řekněme, že jste vytvořili posouvající se prezentaci Powerpoint, kterou chcete v práci trvale zobrazovat na velkém televizním displeji. Nebo možná máte aplikaci Excel, která obsahuje vstupní formulář pro vaše pracovníky k zadávání informací do databáze.

Existuje mnoho důvodů, proč byste mohli chtít sledovat, zda je aplikace spuštěna na nějakém vzdáleném počítači. Může to znít jako komplikovaný požadavek na vysoké úrovni, že budete potřebovat IT odborníka, který vám pomůže, ale jsem tu, abych vám řekl, že toto je úkol, který můžete splnit sami.

Důvěřovali jste nám, abychom vám ukázali, jak s VBA dělat jiné zdánlivě komplikované úkoly, jako je odesílání e-mailů z Excelu Jak posílat e-maily z tabulky Excelu pomocí skriptů VBA Jak posílat e-maily z tabulky Excelu pomocí skriptů VBA Naše kódová šablona bude vám pomohou nastavit automatické e-maily z aplikace Excel pomocí skriptů Collaboration Data Objects (CDO) a VBA. , předávání informací do schránky Windows Předávání jakékoli informace mezi aplikacemi VBA pomocí schránky Předávání jakékoli informace mezi aplikacemi VBA pomocí schránky Jednou z nejvíce frustrujících částí práce s VBA v konkrétních aplikacích je, že není vždy snadné získat dvě aplikace “mluvit” navzájem. Můžete vyzkoušet velmi rychlé transakce ... a integraci aplikace Excel Jak integrovat data Excelu do dokumentu Word Jak integrovat data Excelu do dokumentu Word Během pracovního týdne je pravděpodobně mnoho časů, kdy zjistíte, že kopírujete a vkládáte informace z Excel do aplikace Word nebo naopak. Takto lidé často vytvářejí písemné zprávy ... data do dokumentu Word.

Nyní byly všechny tyto věci relativně pasivní. Posílání e-mailů nebo předávání dat z jedné aplikace do druhé v počítači je jedna věc, ale v tomto případě budeme sledovat jednu aplikaci běžící na jednom počítači a druhou spuštěnou na vzdáleném počítači. Je to možné - věřte mi.

Vzdálený monitorovací systém aplikací

Jde v podstatě o systém, který z vás může udělat hrdinu při práci s několika jednoduchými řádky kódu na obou koncích instalace.

Jak bude vypadat nastavení? Toto nastavení může v zásadě fungovat s více vzdálenými počítačovými systémy, které by mohly zobrazovat něco na velkém televizním displeji nebo spouštět obrazovku pro zadávání dat Excel nebo cokoli jiného, ​​co je aplikace Office s VBA.

Handshaking VBA Script

V příkladu zde vytvořím jeden počítač, kde aplikace VBA zapíše soubor na pevný disk místního počítače v adresáři c: \ temp \ handshaking \ každých 5 sekund. Poté počítač pro vzdálené monitorování vzdáleně zkontroluje tento adresář pro soubor tak často. Pokud soubor existuje, odstraní jej (protože pokud je spuštěn vzdálený program, měl by jej znovu vytvořit). Pokud soubor neexistuje, vydá varování, že aplikace v tomto počítači již není spuštěna.

Jak to vypadá?.

Nejprve vám ukážu, jak můžete přidat skript VBA do místní aplikace Office, která zapíše soubor handshaking každých 5 sekund (pokud soubor již neexistuje).

V mém příkladu jsem vytvořil dvě tlačítka, abych vám ukázal, jak skript funguje, ale ve vaší aplikaci spustíte “Spusťte Handshaking” skript při spuštění aplikace. V Excelu je to list -> Aktivovat funkci.

Než začnete se skriptem, který bude psát soubor handshaking, musíte aktivovat odkaz Microsoft Scripting Runtime - to umožňuje aplikaci VBA získat přístup k nástrojům pro manipulaci se soubory okna. K tomu se dostanete v editoru VBA kliknutím na nabídku Nástroje -> Odkazy.

Jednoduše přejděte dolů, vyberte položku Microsoft Scripting Runtime a můžete jít.

„Podle pravidelného rozvrhu zkontrolujte, zda existuje soubor pro handshaking. "Pokud ne, napište nový soubor." „Soubor je pojmenován podle ID počítače, takže monitor ví, který počítač má problém. 'Časový skript pro pravidelnou kontrolu souboru c: \ scripts \ handshake \. Dim intTime As Integer Dim sFile As String Dim sPath As String Dim SFname As String Dim i As Integer intTime = 5 i = FreeFile TimerOn = True sFile = "c: \ Temp \ MyComputerName.txt" Zatímco TimerOn = True If Second (Now) > (intTime + 5) Nebo za sekundu (nyní) = 0 Pak 'Zkontrolujte, zda soubor existuje' Pokud ne, znovu jej vytvořte Pokud Dir (sFile) = - Pak 'Soubor neexistuje, znovu jej vytvořte MsgBox "vytvořil" Otevřít sFile pro výstup Jako #i Close End If intTime = Second (Now) Sheets ("sheet1"). Range ("a1"). Value = Time End If DoEvents Wend

Tento skript má pouze 16 řádků, pokud nepočítáte definice proměnných, je to jednoduchý skript! Vše, co dělá, je nastavení časovací smyčky, která běží každých 5 sekund. Zkontroluje, zda existuje soubor handshaking. Pokud tomu tak není, obnoví soubor.

Pokud o tom přemýšlíte, jedná se o jednoduchý a kreativní způsob, jak říct světu, že aplikace je naživu a běží. Dovolte mi ukázat, co tím myslím. Když kliknu na “Spusťte Handshaking” a poté přejděte do adresáře c: \ temp \ handshaking \, vidím, že můj skript VBA vytvořil nový soubor. Je to prázdný soubor, ale na tom nezáleží - záleží na tom, že soubor existuje.

Abych otestoval skript, ručně smažu textový soubor z adresáře.

O několik sekund později se soubor znovu objeví.

To znamená, že v tomto okamžiku může kdokoli nebo cokoli mimo vaši aplikaci zkontrolovat, zda je váš program otevřený odstraněním tohoto souboru a následným zkontrolováním, zda se soubor znovu objeví. Jednoduché - přesto efektivní!

Vytvoření vzdáleného monitorovacího skriptu

Nyní, když máte skript pro handshaking VBA spuštěný ve všech vzdálených aplikacích, budete chtít vytvořit centrální program spuštěný na nějakém serveru nebo možná na vlastním pracovním počítači, který zhasne a monitoruje, zda tyto vzdálené aplikace běží.

Nejlepší způsob, jak toho dosáhnout, je skript, který běží na pozadí bez rozhraní GUI. Vše, co chcete, aby skript udělal, je upozornit na zastavení jakékoli vzdálené aplikace. Perfektním nástrojem pro tuto aplikaci je skript systému Windows. Stačí vytvořit nový textový soubor s názvem handshaking.wsf a vložit následující skript.

Možnost Explicitní při obnovení chyby Další 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.FileEx ( sFile) Pak nastavte oFile = oFSO.OpenTextFile (sFile, 1) Do Not NotFile.AtEndOfStream sText = oFile.ReadLine If Trim (sText) - Pak strComputerName = Trim (sText) sFile2 = "\\" & strComputerName & "\ c $ \ users \ owner \ scripts \ handshaking \ "& strComputerName &" .txt "
 Pokud oFSO2.FileExists (sFile2) Pak
 oFSO2.DeleteFile sFile2, True
 Jinak WScript.Echo strComputerName & "není spuštěn software!" End If End If Loop oFile.Close Else WScript.Echo "Soubor tam nebyl." End If Set Shell = Nic Set oFSO = Nic WScript.Quit

Tento skript používá podsystém Windows File k prvnímu otevření “terminallist.ini” soubor, který v podstatě obsahuje všechny soubory vzdáleného počítače, ke kterým se pokoušíte přistupovat. V tomto případě má pro můj test tři řádky obsahující MyComputerName, MyOtherComputer a YetAnotherComputer.

Výše uvedený skript prochází seznamem počítačů, přistupuje ke vzdálenému počítači pomocí síťové cesty (samozřejmě musíte být administrátorem), a pokud soubor existuje, odstraní jej. Pokud soubor neexistuje, vydá varování.

Když jsem spustil můj monitorovací skript WSF, nezaznamenal varování na prvním počítači, protože soubor byl nalezen, ale na dalších dvou upozorňoval, protože tyto vzdálené aplikace ještě neexistují a nejsou spuštěny.

Nyní, abyste se ujistili, že váš monitorovací software pravidelně běží a zkontroluje, zda všechny vaše vzdálené počítače běží váš program, musíte nastavit skript WSF výše jako naplánovanou úlohu, která se spustí každých 5 minut.

Stačí vytvořit úkol na serveru nebo na hlavním počítači, který ukazuje na skript.

A vytvořte neurčitý plán, který spustí váš monitorovací skript každých 5 minut.

Nyní s pouhými dvěma jednoduchými skripty - jedním úryvkem VBA vloženým do některého z vašich stávajících programů sady Office a jedním skriptem Windows, který tyto vzdálené programy neustále sleduje - budete upozorněni okamžitě, jakmile někdo uzavře tento vzdálený program nebo se počítač vypne nebo program z jakéhokoli důvodu zemře.

Pokud pracujete v prostředí Windows a vytvořili jste spoustu důležitých aplikací pomocí softwaru Office, je tato technika velmi rychlý a levný (zdarma!) Způsob, jak vzdáleně sledovat všechny tyto kritické aplikace..

Dejte to šanci a dejte mi vědět, jak to dopadlo pro vás? Dokázali jste ohromit všechny své kolegy tím, jak rychle jste věděli, kdykoli byl jeden z vašich systémů dole? Sdílejte své myšlenky a zkušenosti v sekci komentářů níže.

Image Credits: Mladý muž ukázal na počítači přes Shutterstock




Bisher hat noch niemand einen Kommentar zu diesem Artikel abgegeben.

O moderní technologii, jednoduché a cenově dostupné.
Váš průvodce ve světě moderních technologií. Naučte se, jak používat technologie a pomůcky, které nás každý den obklopují, a naučte se, jak objevovat na internetu zajímavé věci.