Überwachen Sie, ob Ihre VBA-Apps mit diesem Slick-Skript ausgeführt werden
Lassen Sie mich ein Szenario für Sie zeichnen. Angenommen, Sie haben eine Powerpoint-Diashow mit Bildlauffunktion erstellt, die bei der Arbeit dauerhaft auf einem großen Fernsehbildschirm angezeigt werden soll. Oder Sie haben vielleicht eine Excel-Anwendung, die ein Eingabeformular für Ihre Mitarbeiter enthält, um Informationen in eine Datenbank einzugeben.
Es gibt viele Gründe, warum Sie überwachen möchten, ob eine Anwendung auf einem Remote-Computer ausgeführt wird. Das hört sich vielleicht nach einer komplizierten hohen Anforderung an, für die Sie einen IT-Experten benötigen, aber ich möchte Ihnen sagen, dass dies eine Aufgabe ist, die Sie selbst erledigen können.
Sie haben uns vertraut, um Ihnen zu zeigen, wie Sie andere scheinbar komplizierte Aufgaben mit VBA erledigen können, beispielsweise das Senden von E-Mails aus Excel. Senden von E-Mails aus einer Excel-Kalkulationstabelle mithilfe von VBA-Skripts. Senden von E-Mails aus einer Excel-Kalkulationstabelle mithilfe von VBA-Scripts Mithilfe von Collaboration Data Objects (CDO) und VBA-Skripts können Sie in Excel automatisierte E-Mails einrichten. Weitere Informationen, Weitergabe von Informationen an die Windows-Zwischenablage Alle Informationen zwischen VBA-Anwendungen mithilfe der Zwischenablage übergeben Alle Informationen zwischen VBA-Anwendungen mithilfe der Zwischenablage übergeben Einer der frustrierendsten Aspekte bei der Arbeit mit VBA in bestimmten Anwendungen ist, dass es nicht immer einfach ist, zwei zu erhalten Bewerbungen an “sich unterhalten” zueinander. Sie können für sehr schnelle Transaktionen versuchen… Lesen Sie mehr, und integrieren Sie Excel. Integrieren von Excel-Daten in ein Word-Dokument. Integrieren von Excel-Daten in ein Word-Dokument. Während Ihrer Arbeitswoche gibt es wahrscheinlich viele Zeiten, in denen Sie kopieren und einfügen Informationen aus Excel in Word oder umgekehrt. So erstellen die Leute oft schriftliche Berichte… Lesen Sie mehr Daten in ein Word-Dokument.
Nun, all diese Dinge waren relativ passiv. Das Senden von E-Mails oder das Weitergeben von Daten von einer Anwendung an eine andere auf einem Computer ist eine Sache. In diesem Fall werden wir jedoch eine Anwendung überwachen, die auf einem Computer ausgeführt wird, während eine andere Anwendung auf einem Remote-Computer ausgeführt wird. Es ist möglich - vertrau mir.
Ein Remote Application Monitoring System
Dies ist im Grunde ein System, das Sie mit nur ein paar einfachen Codezeilen an beiden Enden des Setups in einen Helden verwandeln kann.
Wie sieht das Setup aus? Grundsätzlich kann dieses Setup mit mehreren Remote-Computersystemen arbeiten, die möglicherweise etwas auf einem großen Fernsehbildschirm anzeigen oder einen Excel-Dateneingabebildschirm ausführen oder eine andere Office-Anwendung mit VBA.
Ein Handshake-VBA-Skript
Im Beispiel hier werde ich einen Computer erstellen, auf dem die VBA-Anwendung alle 5 Sekunden eine Datei auf die Festplatte des lokalen Computers im Verzeichnis c: \ temp \ handshaking \ schreibt. Der Remoteüberwachungscomputer überprüft dann dieses Verzeichnis von Zeit zu Zeit auf die Datei. Wenn die Datei vorhanden ist, wird sie gelöscht (wenn das Remote-Programm ausgeführt wird, sollte die Datei einfach neu erstellt werden). Wenn die Datei nicht vorhanden ist, wird eine Warnmeldung ausgegeben, dass die Anwendung auf diesem Computer nicht mehr ausgeführt wird.
So sieht das aus.
Zuerst werde ich Ihnen zeigen, wie Sie das VBA-Skript in Ihrer lokalen Office-Anwendung hinzufügen können, das die Handshaking-Datei alle 5 Sekunden schreibt (falls die Datei noch nicht vorhanden ist)..
In meinem Beispiel habe ich zwei Drucktasten erstellt, um Ihnen zu zeigen, wie das Skript funktioniert. In Ihrer Anwendung starten Sie jedoch die “Starten Sie das Handshaking” Skript beim Start der Anwendung. In Excel ist dies die Funktion Arbeitsblatt -> Aktivieren.
Bevor Sie mit dem Skript beginnen, mit dem die Handshaking-Datei geschrieben wird, müssen Sie die Microsoft Scripting Runtime-Referenz aktivieren. Auf diese Weise kann Ihre VBA-App auf die Dateibearbeitungswerkzeuge von Windows zugreifen. Sie können darauf im VBA-Editor zugreifen, indem Sie im Menü Extras -> Referenzen klicken.
Scrollen Sie einfach nach unten, wählen Sie Microsoft Scripting Runtime aus, und schon können Sie loslegen.
'Überprüfen Sie regelmäßig, ob die Handshaking-Datei vorhanden ist. 'Wenn dies nicht der Fall ist, schreiben Sie eine neue Datei. "Die Datei wird mit der Computer-ID benannt. Der Monitor weiß also, bei welchem Computer ein Problem auftritt." 'Timer-Skript, um regelmäßig nach c: \ scripts \ handshake \ für die Datei zu suchen. 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" While TimerOn = True If Second (Now) > (intTime + 5) Oder Sekunde (Jetzt) = 0 Dann 'Prüfen, ob Datei existiert' Wenn nicht, erstellen Sie sie neu Wenn Dir (sFile) = - Dann 'Datei nicht vorhanden ist, erstellen Sie sie neu. MsgBox "erstellt" Öffnen Sie sFile für die Ausgabe Als #i Schließen Ende, wenn intTime = Zweite (jetzt) Blätter ("Tabelle1"). Bereich ("a1"). Wert = Zeit Ende, wenn DoEvents Wend
Dieses Skript hat nur 16 Zeilen, wenn Sie die Variablendefinitionen nicht zählen, das ist ein einfaches Skript! Alles, was es tut, ist, eine Timer-Schleife einzurichten, die alle 5 Sekunden läuft. Es wird geprüft, ob die Handshaking-Datei vorhanden ist. Ist dies nicht der Fall, wird die Datei neu erstellt.
Wenn Sie darüber nachdenken, ist dies eine einfache und kreative Möglichkeit, der Welt mitzuteilen, dass die Anwendung läuft und läuft. Lass mich dir zeigen, was ich meine. Wenn ich auf das klicke “Starten Sie das Handshaking” und dann in das Verzeichnis c: \ temp \ handshaking \ wechseln. Ich kann sehen, dass mein VBA-Skript die neue Datei erstellt hat. Es ist eine leere Datei, aber das ist egal - was zählt ist, dass die Datei existiert.
Um mein Skript zu testen, lösche ich die Textdatei manuell aus dem Verzeichnis.
Ein paar Sekunden später erscheint die Datei erneut.
Das bedeutet, dass zu diesem Zeitpunkt alle Personen oder Elemente außerhalb Ihrer Anwendung prüfen können, ob Ihr Programm geöffnet ist, indem Sie diese Datei löschen und dann prüfen, ob die Datei erneut angezeigt wird. Einfach - aber effizient!
Erstellen eines Fernüberwachungsskripts
Nachdem Sie nun Ihr VBA-Handshaking-Skript für alle Ihre Remote-Anwendungen ausgeführt haben, möchten Sie ein zentrales Programm erstellen, das auf einem Server oder möglicherweise auf Ihrem eigenen Arbeits-PC ausgeführt wird und das überwacht, ob diese Remote-Apps ausgeführt werden.
Dies erreichen Sie am besten mit einem Skript, das im Hintergrund ohne GUI-Frontend ausgeführt wird. Sie möchten lediglich, dass das Skript eine Warnmeldung ausgibt, wenn eine der Remote-Anwendungen nicht mehr ausgeführt wird. Das perfekte Werkzeug für diese App ist das Windows-Skript. Erstellen Sie einfach eine neue Textdatei namens handshaking.wsf und fügen Sie das folgende Skript ein.
Option Explicit Bei Fehler Resume Next Dim strHost Dim strComputerName Dim ReturnCode Dim strLine Dim Shell Dim oFSO, sFile, oTile Dim sFSO2, sFile2, oFile2, sText2 Dim strFailedList Set Shell = wscript.createObject ("wscript.createObject") CreateObject ("Scripting.FileSystemObject") Set oFSO2 = CreateObject ("Scripting.FileSystemObject") sFile = "\\ MeinComputername \ c $ \ users \ owner \ scripts \ handshaking \ terminallist.ini" strFailedList = "" If oFSO.ileExists ( sFile) Dann Set oFile = oFSO.OpenTextFile (sFile, 1) Do While nicht oFile.AtEndOfStream sText = oFile.ReadLine Wenn Trim (sText) <> - dann strComputerName = Trim (sText) sFile2 = "\\" & strComputerName & " \ c $ \ users \ owner \ scripts \ handshaking \ "& strComputername &" .txt "
Wenn oFSO2.FileExists (sFile2), dann
oFSO2.DeleteFile sFile2, True
Sonst WScript.Echo strComputerName & "führt die Software nicht aus!" End If End If Loop oFile.Close Else WScript.Echo "Die Datei war nicht vorhanden." End If Set Shell = Nothing Set oFSO = Nothing WScript.Quit
Dieses Skript verwendet das Windows-Dateisystem, um zuerst das “terminallist.ini” Datei, die im Grunde alle Remote-Computerdateien enthält, auf die Sie zugreifen möchten. In diesem Fall gibt es für meinen Test drei Zeilen mit MyComputerName, MyOtherComputer und YetAnotherComputer.
Das obige Skript ruft Ihre Computerliste auf und greift über den Netzwerkpfad auf den Remote-Computer zu (Sie müssen natürlich ein Administrator sein). Wenn die Datei vorhanden ist, wird sie gelöscht. Wenn die Datei nicht vorhanden ist, wird eine Warnung ausgegeben.
Beim Ausführen meines WSF-Überwachungsskripts wurde auf dem ersten Computer keine Warnung ausgegeben, da die Datei gefunden wurde. Bei den anderen beiden wurde jedoch eine Warnung ausgegeben, da diese Remote-Anwendungen noch nicht vorhanden sind und nicht ausgeführt werden.
Um sicherzustellen, dass Ihre Überwachungssoftware regelmäßig ausgeführt wird, und überprüft, ob alle Remotecomputer Ihr Programm ausführen, müssen Sie das oben genannte WSF-Skript als geplanten Task einrichten, der alle 5 Minuten ausgeführt wird.
Erstellen Sie einfach eine Aufgabe auf Ihrem Server oder Ihrem Haupt-PC, die auf das Skript verweist.
Erstellen Sie einen unbegrenzten Zeitplan, der Ihr Überwachungsskript alle 5 Minuten ausführt.
Mit nur diesen beiden einfachen Skripts - einem VBA-Snippet, das in eines Ihrer vorhandenen Office-Programme eingebettet ist, und einem Windows-Skript, das diese Remote-Programme ständig überwacht - werden Sie sofort benachrichtigt, sobald jemand das Remote-Programm schließt oder der PC abschaltet oder das Programm stirbt aus irgendeinem Grund.
Wenn Sie in einer Windows-Umgebung arbeiten und viele wichtige Anwendungen mit Office-Software erstellt haben, ist diese Technik eine sehr schnelle und kostengünstige (kostenlose!) Möglichkeit, um alle wichtigen Anwendungen aus der Ferne zu überwachen.
Probieren Sie es aus und lassen Sie mich wissen, wie es für Sie funktioniert hat? Konnten Sie alle Ihre Kollegen davon überzeugen, wie schnell Sie wissen, wann eines Ihrer Systeme ausfiel? Teilen Sie Ihre Gedanken und Erfahrungen in den Kommentaren unten mit.
Bildnachweise: Junger Mann zeigt über Shutterstock auf den Computer
Erfahren Sie mehr über: Programmierung, Visual Basic-Programmierung.