Surveiller si vos applications en cours d`exécution sont vba avec ce script lisse

Permettez-moi de peindre un scénario pour vous. Disons que vous avez créé un diaporama Powerpoint défilement que vous souhaitez afficher en permanence sur un grand écran de télévision au travail. Ou, vous avez peut-être une application Excel qui comprend un formulaire d`inscription pour vos travailleurs de taper des informations dans une base de données.

Il y a beaucoup de raisons pour lesquelles vous pourriez vouloir surveiller si une application est en cours d`exécution sur certains ordinateur distant. Cela peut sembler une exigence de haut niveau complexe que vous aurez besoin d`un expert en informatique pour vous aider, mais je suis ici pour vous dire que cela est une tâche que vous pouvez vous accomplir.

Vous nous avez fait confiance pour vous montrer comment faire d`autres tâches apparemment compliquées avec VBA avant, comme envoyer des e-mails à partir d`Excel, transmettre des informations à la presse-papiers de windows, et intégration Excel données dans un document Word.Comment envoyer des emails depuis une feuille Excel à l`aide de scripts VBAComment envoyer des emails depuis une feuille Excel à l`aide de scripts VBADans le passé, je l`ai utilisé un email beaucoup dans mes travaux par lots et d`autres scripts automatisés, comme je l`ai décrit dans les articles précédents. Ceux-ci sont parfaits pour les moments où vous avez un script ...Lire la suite

Maintenant, toutes ces choses étaient relativement passif. L`envoi de courriels ou transmettre des données d`une application à une autre sur un ordinateur est une chose, mais dans ce cas, nous allons surveiller une application en cours d`exécution sur un ordinateur, avec une autre application en cours d`exécution sur un ordinateur distant. Il est possible - faites-moi confiance.

Un système de surveillance de l`application à distance

Ceci est essentiellement un système qui peut vous transformer en un héros au travail avec seulement quelques lignes de code simple sur les deux extrémités de la configuration.

Qu`est-ce que la configuration ressemble? En gros, cette configuration peut fonctionner avec plusieurs systèmes informatiques distants qui pourraient exposerons quelque chose sur un grand écran de télévision, ou en cours d`exécution d`un écran de saisie de données Excel, ou toute autre chose qui est une application Office avec VBA.

Une prise de contact VBA Script

Dans l`exemple, je vais créer un ordinateur où l`application VBA écrit un fichier sur l`ordinateur local disque dur dans le répertoire c: temp répertoire handshaking toutes les 5 secondes. Ensuite, l`ordinateur de surveillance à distance vérifiera à distance ce répertoire si souvent pour chaque fichier. Si le fichier existe, il supprimera (parce que si le programme en cours d`exécution à distance est, il devrait simplement recréer à nouveau le fichier). Si le fichier n`existe pas, il émettra une alerte que l`application sur cet ordinateur ne fonctionne plus.

Voilà ce qui ressemble.

surveiller l`application en cours d`exécution

Tout d`abord, je vais vous montrer comment vous pouvez ajouter le script VBA sur votre application Office local qui va écrire le fichier handshake toutes les 5 secondes (si le fichier n`existe pas déjà).

Dans mon exemple, j`ai créé deux boutons pour vous montrer comment fonctionne le script, mais dans votre application, vous lancerez le script « Démarrer handshake » lorsque l`application démarre. Dans Excel, qui est la feuille de travail -gt; Activer la fonction.

Avant de commencer avec le script qui va écrire le fichier de prise de contact, vous devez activer la référence Microsoft Scripting Runtime - cela permet à votre application VBA pour accéder aux outils de manipulation de fichiers de la fenêtre. Vous pouvez accéder à ce dans l`éditeur VBA, en cliquant sur les outils -gt; menu Références.

application de surveillance a cessé de fonctionner

Il suffit de faire défiler vers le bas, sélectionnez Microsoft Scripting Runtime, et vous êtes bon pour aller.

« Sur un horaire régulier, vérifier si le fichier de prise de contact exists.`If il n`a pas, écrire un nouveau file.`File est nommé avec l`ID d`ordinateur pour moniteur sait which`computer est d`avoir un script problem.`Timer pour vérifier régulièrement c: scripts poignée de main pour le file.Dim INTTIME Comme IntegerDim sFile Comme StringDim sPath Comme StringDim SFname Comme StringDim i Comme IntegerintTime = 5i = FreeFileTimerOn = TruesFile = "c: Temp MyComputerName.txt"Alors que TimerOn = true si Second (maintenant) gt; (INTTIME + 5) ou deuxième (maintenant) = 0 Then`Check si le fichier exists`If pas, recréer ITIF Dir (sFile) = - Then`File n`existe pas, recréer itMsgBox "créé"Ouvrez sFile Pour la sortie Comme #iCloseEnd IfintTime = deuxième feuille (maintenant) ("sheet1").Gamme("a1") .Value = TimeEnd IfDoEventsWend

Ce script a seulement 16 lignes si vous ne comptez pas les définitions de variables, c`est un script simple! Tout ce qu`il fait est établit une boucle de minuterie qui passe toutes les 5 secondes. Il vérifie si le fichier existe handshake. Si elle ne le fait pas, il recrée le fichier.

Si vous pensez, c`est un moyen simple, créatif pour dire au monde que l`application est en vie et en cours d`exécution. Laissez-moi vous montrer ce que je veux dire. Lorsque je clique sur le bouton « Démarrer handshake » puis allez dans le répertoire c: temp handshake répertoire , je peux voir que mon script VBA a créé le nouveau fichier. Il est un fichier vide, mais cela n`a pas d`importance - ce qui importe est que le fichier existe.

application de surveillance a cessé de fonctionner

Pour tester mon script, supprimer manuellement le fichier texte à partir du répertoire.

application de surveillance a cessé de fonctionner

Quelques secondes plus tard, le fichier réapparaît à nouveau.

application moniteur

Cela signifie qu`à ce moment-là, quelqu`un ou quelque chose externe à votre application peut vérifier si oui ou non votre programme est ouvert en supprimant ce fichier, puis de vérifier si le fichier réapparaît. Simple - mais efficace!

Création d`un script de surveillance à distance

Maintenant que vous avez votre script VBA handshake en cours d`exécution sur toutes vos applications à distance, vous voulez créer un programme central en cours d`exécution sur un serveur, ou peut-être sur votre propre PC de travail, qui sort et vérifie si les applications en cours d`exécution à distance sont.

La meilleure façon de le faire est avec un script qui fonctionne en arrière-plan sans frontal GUI. Tout ce que vous voulez que le script à faire est de vous donner une alerte lorsque l`une des applications d`arrêt à distance en cours d`exécution. L`outil parfait pour cette application est script Windows. Il suffit de créer un nouveau fichier texte appelé handshaking.wsf et collez le script suivant.

Option ExplicitOn Error Resume NextDim strHostDim strComputerNameDim ReturnCodeDim strLineDim ShellDim oFSO, sFile, oFile, sTextDim oFSO2, sFile2, oFile2, sText2Dim strFailedListSet Shell = WScript.CreateObject ("wscript.shell") Set oFSO = CreateObject ("Scripting.FileSystemObject") Set oFSO2 = CreateObject ("Scripting.FileSystemObject") = SFile " VotreOrdinateur c $ users propriétaire scripts handshake terminallist.ini"strFailedList = ""Si oFSO.FileExists (sFile) ThenSet oFile = oFSO.OpenTextFile (sFile, 1) Do While = Non oFile.AtEndOfStreamsText oFile.ReadLineIf garniture (sText) lt; gt; - ThenstrComputerName = trim (sText) = sFile2 "" & strComputerName & " C $ users propriétaire scripts handshake " & strComputerName & ".SMS"
	Si oFSO2.FileExists (sFile2), puis
 oFSO2.DeleteFile sFile2, True
	ElseWScript.Echo strComputerName & " n`est pas en cours d`exécution du logiciel!"Fin IfEnd IfLoopoFile.CloseElseWScript.Echo "Le fichier n`était pas là."Fin IFSET Shell = NothingSet oFSO = NothingWScript.Quit

Ce script utilise le sous-système de fichiers Windows d`abord ouvrir le fichier « terminallist.ini », qui a essentiellement tous les fichiers d`ordinateur à distance que vous essayez d`accéder. Dans ce cas, pour mon test, il a trois lignes contenant VotreOrdinateur, MyOtherComputer et YetAnotherComputer.

Le script ci-dessus sera votre liste d`ordinateurs, accéder à la machine à distance en utilisant le chemin réseau (vous devez être un administrateur, évidemment), et si le fichier existe, il le supprimer. Si le fichier n`existe pas, il émettra une alerte.

Exécution de mon script de suivi du FSM, il n`a pas alerte sur le premier ordinateur, parce que le fichier a été trouvé, mais il a fait une alerte sur les deux autres parce que ces applications distantes n`existent pas encore, et ne sont pas en cours d`exécution.

Maintenant, pour vous assurer que votre logiciel de surveillance circule régulièrement à travers et vérifie que tous vos ordinateurs distants en cours d`exécution de votre programme, vous aurez besoin de mettre en place le script FSM ci-dessus comme une tâche planifiée qui passe toutes les 5 minutes.

Il suffit de créer une tâche sur votre serveur ou votre PC principal qui pointe vers le script.

application moniteur

Et créer un calendrier indéfini qui exécute votre script de surveillance toutes les 5 minutes.

surveiller l`application en cours d`exécution

Maintenant, avec seulement ces deux scripts simples - un extrait de code VBA intégré dans l`un de vos programmes Office existants, et un script Windows qui surveille en permanence les programmes à distance - vous serez averti instantanément le moment, quelqu`un ferme ce programme à distance, ou le PC se éteint ou le programme meurt pour quelque raison que ce soit.

Si vous travaillez dans un environnement Windows et ont créé un grand nombre d`applications critiques en utilisant les logiciels de bureautique, cette technique est très rapide et pas cher (gratuit!) Moyen de contrôler à distance toutes les applications critiques.

Donnez un coup de feu et laissez-moi savoir comment cela a fonctionné pour vous? Avez-vous été en mesure d`impressionner tous vos collègues avec rapidité avec laquelle vous saviez à chaque fois que l`un de vos systèmes est en baisse? Partagez vos idées et expériences dans la section commentaires ci-dessous.

Articles connexes