Overvåg, hvis dine VBA-apps kører med dette smarte script

  • Owen Little
  • 0
  • 933
  • 121
Reklame

Lad mig male et scenarie til dig. Lad os sige, at du har oprettet et rullende Powerpoint-lysbilledshow, som du vil have vist permanent på et stort tv-display på arbejdet. Eller måske har du en Excel-applikation, der indeholder en indtastningsformular, hvor dine medarbejdere kan indtaste oplysninger i en database.

Der er mange grunde til, at du måske ønsker at overvåge, hvis et program kører på en fjerncomputer. Dette kan lyde som et kompliceret krav på højt niveau, som du har brug for en IT-ekspert til at hjælpe dig med, men jeg er her for at fortælle dig, at dette er en opgave, du kan udføre selv.

Du har betroet os til at vise dig, hvordan du gør andre tilsyneladende komplicerede opgaver med VBA før, som at sende e-mails fra Excel Sådan sendes e-mails fra et Excel-regneark ved hjælp af VBA-scripts Sådan sendes e-mails fra et Excel-regneark ved hjælp af VBA-scripts Vores kodeskabelon vil hjælper dig med at opsætte automatiserede e-mails fra Excel ved hjælp af CDO (Collaboration Data Objects) og VBA-scripts. , videregivelse af oplysninger til Windows-udklipsholderen Videregiver enhver information mellem VBA-applikationer ved hjælp af udklipsholderen Videregiver enhver information mellem VBA-applikationer ved hjælp af udklipsholderen En af de mest frustrerende dele af at arbejde med VBA inden for specifikke applikationer, er at det ikke altid er nemt at få to applikationer til “tale” til hinanden. Du kan prøve meget hurtige transaktioner ... og integrere Excel Sådan integreres Excel-data i et Word-dokument Sådan integreres Excel-data i et Word-dokument I løbet af din arbejdsuge er der sandsynligvis mange gange, at du finder dig selv i at kopiere og indsætte oplysninger fra Excel til Word eller omvendt. Sådan producerer folk ofte skriftlige rapporter ... data til et Word-dokument.

Nu var alle disse ting relativt passive. At sende e-mails eller videregive data fra en applikation til en anden på en computer er en ting, men i dette tilfælde overvåger vi et program, der kører på en computer, med et andet program, der kører på en fjerncomputer. Det er muligt - stol på mig.

Et fjernovervågningssystem til applikationer

Dette er dybest set et system, der kan forvandle dig til en helt på arbejdet med blot et par enkle kodelinjer i begge ender af opsætningen.

Hvordan ser opsætningen ud? Grundlæggende kan denne opsætning arbejde med flere fjerncomputersystemer, der muligvis viser noget på et stort tv-skærm, eller kører en Excel-dataregistreringsskærm, eller noget andet, der er et Office-program med VBA.

Et håndtryk VBA-script

I eksemplet her skal jeg oprette en computer, hvor VBA-applikationen skriver en fil til den lokale computerharddisk i c: \ temp \ handshaking \ biblioteket hvert 5. sekund. Derefter vil fjernovervågningscomputeren eksternt kontrollere det bibliotek hver gang for filen. Hvis filen findes, sletter den den (fordi hvis fjernprogrammet kører, skal det bare genskabe filen igen). Hvis filen ikke findes, udsender den en advarsel om, at applikationen på den computer ikke længere kører.

Her er hvordan det ser ud.

Først vil jeg vise dig, hvordan du kan tilføje VBA-scriptet til din lokale Office-applikation, der skriver handshakefilen hvert 5. sekund (hvis filen ikke allerede findes).

I mit eksempel oprettede jeg to trykknapper for at vise dig, hvordan scriptet fungerer, men i din applikation starter du “Begynd med at ryste” script, når applikationen starter. I Excel er det regnearket -> Aktivér funktion.

Inden du kommer i gang med scriptet, der skal skrive handshake-filen, skal du aktivere Microsoft Scripting Runtime-reference - dette giver din VBA-app adgang til Window's filmanipulationsværktøjer. Du kan få adgang til dette i VBA-editoren ved at klikke på menuen Funktioner -> Referencer.

Bare rul ned, vælg Microsoft Scripting Runtime, og du er god til at gå.

'I en regelmæssig plan skal du kontrollere, om handshake-filen findes. 'Hvis det ikke gør det, skriv en ny fil. 'Fil er navngivet med computer-id'et, så skærmen ved, hvilken' computer der har et problem. 'Timer-script til regelmæssigt at kontrollere c: \ scripts \ handshake \ for filen. Dim intTime som heltal Dim sFile Som streng Dim sPath Som streng Dim SFname Som streng Dim i Som heltal intTime = 5 i = FreeFile TimerOn = True sFile = "c: \ Temp \ MyComputerName.txt" Mens TimerOn = Sandt hvis andet (nu) > (intTime + 5) Eller anden (nu) = 0 Derefter 'Kontroller, om filen findes'. Hvis ikke, gendan den. Hvis Dir (sFile) = - Så findes 'Fil ikke, genskab den MsgBox' oprettet 'Åbn sFile til output Som #i Luk ende Hvis intTime = Andet (nu) ark ("ark1"). Område ("a1"). Værdi = Time End Hvis DoEvents Wend

Dette script har kun 16 linjer, hvis du ikke tæller variabeldefinitionerne, det er et simpelt script! Det hele gør det er at indstille en timer-loop, der kører hvert 5. sekund. Den kontrollerer, om handshakefilen findes. Hvis det ikke gør det, gendannes det filen.

Hvis du tænker over det, er dette en enkel, kreativ måde at fortælle verden, at applikationen lever og kører. Lad mig vise dig, hvad jeg mener. Når jeg klikker på “Begynd med at ryste” og gå derefter til c: \ temp \ handshaking \ kataloget, jeg kan se, at mit VBA-script har oprettet den nye fil. Det er en tom fil, men det betyder ikke noget - det, der betyder noget, er, at filen findes.

For at teste mit script sletter jeg tekstfilen manuelt fra biblioteket.

Et par sekunder senere vises filen igen.

Det betyder, at på dette tidspunkt kan nogen eller noget, der er ekstern til din applikation, kontrollere, om dit program er åbent ved at slette denne fil og derefter kontrollere, om filen vises igen. Enkelt - men alligevel effektivt!

Oprettelse af et fjernovervågningsscript

Nu, hvor du har dit VBA-håndskakeskript, der kører på alle dine eksterne applikationer, skal du oprette et centralt program, der kører på en eller anden server, eller måske på din egen arbejds-pc, der går ud og overvåger, om disse fjernapper kører.

Den bedste måde at gøre dette på er med et script, der kører i baggrunden uden en GUI-frontend. Alt hvad du vil have scriptet til at gøre er at give dig en advarsel, når nogen af ​​de eksterne applikationer holder op med at køre. Det perfekte værktøj til denne app er Windows-script. Opret bare en ny tekstfil kaldet handshaking.wsf og indsæt følgende script.

Option Eksplicit ved fejl Genoptag næste 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.FSO) CreateObject ("Scripting.FileSystemObject") Sæt oFSO2 = CreateObject ("Scripting.FileSystemObject") sFile = "\\ MyComputerName \ c $ \ brugere \ ejer \ scripts \ handshaking \ terminallist.ini" strFailedList = "" Hvis oFSO.FileExists ( sFile) Indstil derefter oFile = oFSO.OpenTextFile (sFile, 1) Gør, mens ikke oFile.AtEndOfStream sText = oFile.ReadLine Hvis Trim (sText) - Så strComputerName = Trim (sText) sFile2 = "\\" & strCompName & " $ \ brugere \ ejer \ scripts \ håndtryk \ "& strComputerName &" .txt "
 Hvis oFSO2.FileExists (sFile2) Derefter
 oFSO2.DeleteFile sFile2, True
 Else WScript.Echo strComputerName & "kører ikke softwaren!" Slut hvis slut Hvis loop oFile.Close Else WScript.Echo "Filen var ikke der." Slut hvis sæt Shell = Intet sæt oFSO = Intet WScript.Quit

Dette script bruger Windows File subsystem til først at åbne “terminallist.ini” -fil, der dybest set har alle de eksterne computerfiler, du prøver at få adgang til. I dette tilfælde har den til min test tre linjer, der indeholder MyComputerName, MyOtherComputer og YetAnotherComputer.

Skriptet ovenfor vil gå ned på din liste over computere, få adgang til fjernmaskinen ved hjælp af netværksstien (du skal selvfølgelig være administrator), og hvis filen findes, sletter den den. Hvis filen ikke findes, udsender den en advarsel.

Kører mit WSF-overvågningsscript, blev det ikke alarmeret på den første computer, fordi filen blev fundet, men den advarede på de to andre, fordi disse eksterne applikationer ikke eksisterer endnu og ikke kører.

For at sikre dig, at din overvågningssoftware regelmæssigt løber igennem og kontrollerer, at alle dine eksterne computere kører dit program, skal du konfigurere WSF-scriptet ovenfor som en planlagt opgave, der kører hvert 5. minut.

Opret bare en opgave på din server eller din vigtigste pc, der peger på scriptet.

Og opret en ubestemt tidsplan, der kører dit overvågningsscript hvert 5. minut.

Nu med bare disse to enkle scripts - et VBA-kodestykke indlejret i et hvilket som helst af dine eksisterende Office-programmer, og et Windows-script, der konstant overvåger disse fjernprogrammer - får du øjeblikkeligt besked, i det øjeblik nogen lukker det eksterne program, eller pc'en lukker , eller programmet dør af en eller anden grund.

Hvis du arbejder i et Windows-miljø og har oprettet en masse kritiske applikationer ved hjælp af Office-software, er denne teknik en meget hurtig og billig (gratis!) Måde til fjernt at overvåge alle disse kritiske apps.

Giv det et skud, og lad mig vide, hvordan det fungerede for dig? Kunne du imponere alle dine kolleger med, hvor hurtigt du vidste, når et af dine systemer var nede? Del dine tanker og oplevelser i kommentarfeltet nedenfor.

Billedkreditter: Ung mand peger på computeren via Shutterstock




Endnu ingen kommentarer

Om moderne teknologi, enkel og overkommelig.
Din guide i en verden af moderne teknologi. Lær hvordan du bruger de teknologier og gadgets, der omgiver os hver dag, og lær, hvordan du finder interessante ting på Internettet.