Annuncio pubblicitario

monitorare l'applicazione in esecuzioneLasciami dipingere uno scenario per te. Supponiamo che tu abbia creato una presentazione Powerpoint a scorrimento che desideri visualizzare permanentemente su un grande schermo TV al lavoro. Oppure, forse hai un'applicazione Excel che include un modulo di iscrizione per i tuoi lavoratori per digitare le informazioni in un database.

Ci sono molte ragioni per cui potresti voler monitorare se un'applicazione è in esecuzione su un computer remoto. Questo può sembrare un requisito di alto livello complicato di cui avrai bisogno di un esperto IT per aiutarti, ma sono qui per dirti che questo è un compito che puoi svolgere da solo.

Ti sei fidato di noi per mostrarti come svolgere altre attività apparentemente complicate con VBA prima, come invio di email da Excel Come inviare e-mail da un foglio di calcolo Excel utilizzando gli script VBAIl nostro modello di codice ti aiuterà a configurare e-mail automatiche da Excel utilizzando Collaboration Data Objects (CDO) e script VBA. Leggi di più

instagram viewer
, passando informazioni al Appunti di Windows Passa qualsiasi informazione tra le applicazioni VBA utilizzando gli AppuntiUna delle parti più frustranti di lavorare con VBA all'interno di applicazioni specifiche, è che non è sempre facile ottenere due applicazioni per "parlare" tra loro. Puoi provare per transazioni molto veloci ... Leggi di più , e integrazione di Excel Come integrare i dati di Excel in un documento di WordDurante la settimana lavorativa, ci sono probabilmente molte volte che ti ritrovi a copiare e incollare informazioni da Excel in Word o viceversa. Questo è il modo in cui le persone producono spesso rapporti scritti ... Leggi di più dati in un documento di Word.

Ora, tutte queste cose erano relativamente passive. L'invio di e-mail o il passaggio di dati da un'applicazione a un'altra su un computer è una cosa, ma in questo caso monitoreremo un'applicazione in esecuzione su un computer, con un'altra applicazione in esecuzione su un telecomando computer. È possibile - fidati di me.

Un sistema di monitoraggio remoto delle applicazioni

Questo è fondamentalmente un sistema che può trasformarti in un eroe al lavoro con solo poche semplici righe di codice su entrambe le estremità del setup.

Come sarà l'installazione? Fondamentalmente, questa configurazione può funzionare con più sistemi di computer remoti che potrebbero visualizzare qualcosa su un ampio display TV o esecuzione di una schermata di immissione dati Excel o qualsiasi altra cosa che sia un'applicazione di Office VBA.

Uno script VBA Handshaking

Nell'esempio qui, creerò un computer in cui l'applicazione VBA scrive un file sul disco rigido del computer locale nella directory c: \ temp \ handshaking \ ogni 5 secondi. Quindi, il computer di monitoraggio remoto controllerà in remoto quella directory ogni tanto per il file. Se il file esiste, lo eliminerà (perché se il programma remoto è in esecuzione, dovrebbe semplicemente ricreare nuovamente il file). Se il file non esiste, verrà emesso un avviso che l'applicazione su quel computer non è più in esecuzione.

Ecco come appare.

monitorare l'applicazione in esecuzione

Innanzitutto, ti mostrerò come aggiungere lo script VBA nella tua applicazione Office locale che scriverà il file di handshaking ogni 5 secondi (se il file non esiste già).

Controlla se le tue app VBA sono in esecuzione con questo handshaking di Slick Script2

Nel mio esempio, ho creato due pulsanti per mostrarti come funziona lo script, ma nella tua applicazione lancerai lo script "Avvia Handshaking" all'avvio dell'applicazione. In Excel, questo è il foglio di lavoro -> Attiva funzione.

Prima di iniziare con lo script che scriverà il file di handshaking, è necessario attivare il file Riferimento di Microsoft Scripting Runtime: questo consente all'app VBA di accedere alla manipolazione dei file di Windows utensili. Puoi accedervi nell'editor VBA, facendo clic sul menu Strumenti -> Riferimenti.

l'applicazione di monitoraggio ha smesso di funzionare

Basta scorrere verso il basso, selezionare Microsoft Scripting Runtime e sei a posto.

"A intervalli regolari, controlla se esiste il file di sincronizzazione. 'In caso contrario, scrivi un nuovo file. 'Il file è denominato con l'ID computer in modo che il monitor sappia quale. 'il computer sta avendo un problema. 'Script timer per controllare regolarmente c: \ scripts \ handshake \ per il file. Dim intTime As Intero. 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) Or Second (Now) = 0 Quindi 'Controlla se il file esiste' Se no, ricrealo If Dir (sFile ) = - Quindi 'File non esiste, ricrearlo MsgBox "creato" Apri sFile per l'output come #i Chiudi End Se intTime = Second (Now) Sheets ("sheet1"). Range ("a1"). Value = Time End If DoEvents Wend

Questo script ha solo 16 righe se non conti le definizioni delle variabili, è uno script semplice! Tutto ciò che fa è impostare un loop timer che viene eseguito ogni 5 secondi. Verifica se esiste il file di sincronizzazione. In caso contrario, ricrea il file.

Se ci pensate, questo è un modo semplice e creativo per dire al mondo che l'applicazione è viva e in esecuzione. Lascia che ti mostri cosa intendo. Quando faccio clic sul pulsante "Avvia Handshaking" e poi vado nella directory c: \ temp \ handshaking \, posso vedere che il mio script VBA ha creato il nuovo file. È un file vuoto, ma non importa: ciò che conta è che il file esista.

l'applicazione di monitoraggio ha smesso di funzionare

Per testare il mio script, cancello manualmente il file di testo dalla directory.

l'applicazione di monitoraggio ha smesso di funzionare

Pochi secondi dopo, il file riappare di nuovo.

monitorare l'applicazione

Ciò significa che a questo punto, chiunque o qualsiasi cosa esterna alla tua applicazione può verificare se il tuo programma è aperto eliminando quel file e quindi controllando se il file riappare. Semplice - ma efficiente!

Creazione di uno script di monitoraggio remoto

Ora che hai lo script di handshaking VBA in esecuzione su tutte le tue applicazioni remote, ti consigliamo di creare una centrale programma in esecuzione su un server, o forse sul tuo PC di lavoro, che si spegne e controlla se quelle app remote sono in esecuzione.

Il modo migliore per farlo è con uno script che viene eseguito in background senza un front-end della GUI. Tutto quello che vuoi che lo script faccia è darti un avviso quando una qualsiasi delle applicazioni remote smette di funzionare. Lo strumento perfetto per questa app è lo script di Windows. Basta creare un nuovo file di testo chiamato handshaking.wsf e incollare il seguente script.

Opzione esplicita in caso di errore Riprendi Dim dimHost successivo. 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") Impostare oFSO = CreateObject ("Scripting. FileSystemObject ") Impostare oFSO2 = CreateObject ("Scripting. FileSystemObject ") sFile = "\\ MyComputerName \ c $ \ users \ owner \ scripts \ handshaking \ terminallist.ini" strFailedList = "" Se oFSO.FileExists (sFile) Quindi imposta oFile = oFSO.OpenTextFile (sFile, 1) Do While Not o oFile. AtEndOfStream sText = oFile. ReadLine If Trim (sText) <> - Quindi strComputerName = Trim (sText) sFile2 = "\\" & strComputerName & "\ c $ \ users \ owner \ scripts \ handshaking \" & strComputerName & ".txt"
	Se oFSO2.FileExists (sFile2) Quindi
 oFSO2.DeleteFile sFile2, True
Altrimenti WScript. Echo strComputerName & "non esegue il software!" End If End If Loop oFile. Vicino. Altrimenti WScript. Eco "Il file non era lì." Finisci se. Set Shell = Nothing. Impostare oFSO = Nothing. WScript. Smettere

Questo script utilizza il sottosistema File di Windows per aprire prima il file "terminallist.ini", che fondamentalmente contiene tutti i file del computer remoto a cui stai tentando di accedere. In questo caso, per il mio test, ha tre righe contenenti MyComputerName, MyOtherComputer e YetAnotherComputer.

Lo script sopra scenderà nell'elenco dei computer, accederà al computer remoto utilizzando il percorso di rete (è necessario essere un amministratore, ovviamente) e, se il file esiste, lo eliminerà. Se il file non esiste, verrà emesso un avviso.

Eseguendo il mio script di monitoraggio WSF, non è stato avvisato sul primo computer, perché il file è stato trovato, ma ha avvisato degli altri due perché quelle applicazioni remote non esistono ancora e non lo sono in esecuzione.

Controlla se le tue app VBA sono in esecuzione con questo handshaking Slick Script8

Ora, per assicurarti che il tuo software di monitoraggio funzioni regolarmente e controlli che tutti i tuoi computer remoti stanno eseguendo il programma, dovrai impostare lo script WSF sopra come attività pianificata che viene eseguita ogni 5 minuti.

Basta creare un'attività sul server o sul PC principale che punti allo script.

monitorare l'applicazione

E crea una pianificazione indefinita che esegue lo script di monitoraggio ogni 5 minuti.

monitorare l'applicazione in esecuzione

Ora, con solo questi due semplici script: uno snippet VBA incorporato in uno qualsiasi dei programmi Office esistenti e uno Windows Script che monitora costantemente quei programmi remoti - verrai avvisato all'istante nel momento in cui qualcuno chiude quel programma remoto, o il PC si spegne, o il programma muore per qualsiasi motivo di sorta.

Se lavori in un ambiente Windows e hai creato molte applicazioni critiche utilizzando Office software, questa tecnica è un modo molto rapido ed economico (gratuito!) per monitorare da remoto tutti quelli critici Apps.

Fai un tentativo e fammi sapere come ha funzionato per te? Sei stato in grado di stupire tutti i tuoi colleghi con la velocità con cui hai saputo quando uno dei tuoi sistemi era spento? Condividi i tuoi pensieri e le tue esperienze nella sezione commenti qui sotto.

Crediti immagine: Giovane che punta al computer tramite Shutterstock

Ryan ha una laurea in ingegneria elettrica. Ha lavorato 13 anni in ingegneria dell'automazione, 5 anni in IT e ora è un ingegnere di app. Ex amministratore delegato di MakeUseOf, ha parlato a conferenze nazionali sulla visualizzazione dei dati ed è stato presentato su TV e radio nazionali.