Pratite ako se vaše VBA aplikacije pokreću s ovom glatkom skriptu

  • Harry James
  • 0
  • 4519
  • 714
Oglas

Dopustite mi da vam nacrtam scenarij. Recimo da ste napravili pomični prezentacijski PowerPoint koji želite trajno prikazati na velikom TV ekranu u radu. Ili možda imate Excel aplikaciju koja uključuje obrazac za unos da vaši radnici unose informacije u bazu podataka.

Postoji mnogo razloga zbog kojih biste mogli nadzirati da li se aplikacija izvodi na nekom udaljenom računalu. Ovo može zvučati kao komplicirani zahtjev na visokoj razini da će vam trebati IT stručnjak koji će vam pomoći, ali tu sam da vam kažem da je to zadatak koji možete izvršiti sami.

Povjerili ste nam da ćemo vam pokazati kako prije nego što napravite druge naizgled komplicirane zadatke s VBA, poput slanja e-poruka iz Excela. Kako poslati e-poštu s Excel proračunske tablice pomoću VBA skripti. Kako poslati e-poštu s proračunske tablice u Excelu pomoću VBA skripte. Naš predložak koda pomoći vam u postavljanju automatiziranih poruka e-pošte iz programa Excel pomoću objekata podataka o suradnji (CDO) i VBA skripte. , prosljeđivanje podataka u međuspremnik sustava Windows proslijedite bilo koju informaciju između VBA aplikacija pomoću Clipboard-a proslijedite bilo koju informaciju između VBA aplikacija pomoću međuspremnika Jedan od najfascinantnijih dijelova rada s VBA unutar određenih aplikacija je to što nije uvijek lako dobiti dvije aplikacije za “razgovor” jedno drugom. Možete pokušati za vrlo brze transakcije… i integriranje Excela Kako integrirati Excel podatke u Wordov dokument Kako integrirati Excel podatke u Wordov dokument tijekom vašeg radnog tjedna vjerojatno ćete puno puta presnimavati kopiranje i lijepljenje podataka s Excel u Word ili obrnuto. Ovako ljudi često stvaraju pisana izvješća… podatke u Word dokumentu.

Sve su to stvari bile relativno pasivne. Slanje e-poruka ili prijenos podataka iz jedne aplikacije u drugu na računalu je jedno, ali u ovom slučaju ćemo pratiti kako jedan program radi na jednom računalu, a drugi program na udaljenom računalu. Moguće je - vjerujte mi.

Daljinski sustav za nadzor aplikacija

Ovo je u osnovi sustav koji vas može pretvoriti u heroja na poslu s samo nekoliko jednostavnih linija koda na oba kraja instalacije..

Kako će izgledati postava? U osnovi, ovo postavljanje može raditi s više udaljenih računalnih sustava koji možda prikazuju nešto na velikom TV zaslonu ili pokreću Excel ekran za unos podataka ili bilo što drugo što je Office aplikacija s VBA.

Rukovanje VBA skriptu

U primjeru ovdje napravit ću jedno računalo na kojem aplikacija VBA zapisuje datoteku na tvrdi disk lokalnog računala u direktoriju c: \ temp \ handshaking \ svakih 5 sekundi. Tada će računalo za daljinsko nadgledanje daljinski provjeriti tu mapu toliko često za datoteku. Ako datoteka postoji, izbrisat će je (jer ako se izvodi daljinski program, trebao bi je ponovno stvoriti ponovo). Ako datoteka ne postoji, izdat će upozorenje da se aplikacija na tom računalu više ne pokreće.

Evo kako to izgleda.

Prvo ću vam pokazati kako možete dodati VBA skriptu na svoju lokalnu aplikaciju Office koja će datoteku rukovanja pisati svakih 5 sekundi (ako datoteka već ne postoji).

U svom primjeru stvorio sam dva gumba kako bih vam pokazao kako skripta funkcionira, ali u aplikaciji ćete pokrenuti “Počnite rukovati” skriptu kada se aplikacija pokrene. U Excelu je to Radni list -> Aktiviraj funkciju.

Prije nego što započnete sa skriptu koja će pisati datoteku rukovanja, trebate aktivirati Microsoftovu referencu Runtime skripta - to omogućava vašoj VBA aplikaciji pristup alatima za upravljanje datotekama Windowsa. Tomu možete pristupiti u VBA uređivaču, klikom na izbornik Alati -> Reference.

Samo se pomaknite prema dolje, odaberite Microsoft Scripting Runtime i dobro ćete krenuti.

'U redovnom rasporedu provjerite postoji li datoteka o rukovanju. 'Ako ne, napišite novu datoteku. "Datoteka je nazvana s ID-om računala, pa monitor zna koji" računalo ima problem. 'Timer skripta za redovitu provjeru datoteke: c: \ skripte \ handshake \. Dim intTime kao cjelobrojni Dim sFile Kao string string Dim sPath kao string string Dim SFname kao string string Dim i kao Integer intTime = 5 i = FreeFile TimerOn = True sFile = "c: \ Temp \ MyComputerName.txt", dok je TimerOn = Istina ako je drugo (sada) > (intTime + 5) Ili drugo (sada) = 0 Zatim 'Provjeri postoji li datoteka' Ako ne, ponovno stvorite ako Dir (sFile) = - Tada 'Datoteka ne postoji, ponovno je stvorite MsgBox "stvorio" Otvori sFile za izlaz Kao #i Zatvori kraj Ako je intTime = Drugi (Sad) listovi ("sheet1"). Raspon ("a1"). Vrijednost = Vrijeme kraja Ako DoEvents Wend

Ova skripta ima samo 16 redaka ako ne računate definicije varijable, to je jednostavna skripta! Sve što radi je postavljanje vremenske petlje koja se pokreće svakih 5 sekundi. Provjerava postoji li datoteka o rukovanju. Ako se ne dogodi, ponovno stvara datoteku.

Ako razmislite, ovo je jednostavan, kreativan način da svijetu kažete da je aplikacija živa i da radi. Dopustite da vam pokažem na što mislim. Kad kliknem na “Počnite rukovati” i zatim idite u direktorij c: \ temp \ handshaking \, vidim da je moja VBA skripta stvorila novu datoteku. To je prazna datoteka, ali nema veze - datoteka je važna.

Da bih testirao svoju skriptu, ručno izbrišem tekstualnu datoteku iz mape.

Nekoliko sekundi kasnije, datoteka se ponovno pojavljuje.

To znači da u ovom trenutku, bilo tko ili bilo što izvan vašeg programa može provjeriti je li vaš program otvoren brisanjem te datoteke i zatim provjere da li se datoteka ponovno pojavljuje. Jednostavno - ali učinkovito!

Izrada skripte za udaljeno nadgledanje

Sada kada vam se VBA skripta za rukovanje pokreće na svim vašim udaljenim aplikacijama, trebali biste stvoriti središnji program koji se izvodi na nekom poslužitelju ili možda na vašem radnom računalu, koji se gasi i nadzire rade li te udaljene aplikacije.

Najbolji način da to učinite je sa skriptu koja se izvodi u pozadini bez prednjeg dijela GUI-ja. Sve što želite da uradite je da vas obavijesti kada se neka od udaljenih aplikacija prestane pokretati. Savršen alat za ovu aplikaciju je Windows skripta. Samo stvorite novu tekstualnu datoteku zvanu handshaking.wsf i zalijepite sljedeću skriptu.

Opcija eksplicitna o pogrešci Nastavi Slijedeći 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.Shehe.Shell Set" CreateObject ("Scripting.FileSystemObject") postavi oFSO2 = CreateObject ("Scripting.FileSystemObject") sFile = "\\ MyComputerName \ c $ \ users \ owner \ script \ handshaking \ terminallist.ini" strFailedList = "" Ako oFSO.File (FF) sFile) Zatim postavite oFile = oFSO.OpenTextFile (sFile, 1) Učini dok nije oFile.AtEndOfStream sText = oFile.ReadLine Ako Trim (sText) - Zatim strComputerName = Trim (sText) sFile2 = "\\" & strComputer $ \ users \ owner \ skripte \ rukovanje \ "& strComputerName &" .txt "
 Ako oFSO2.FileExists (sFile2) Tada
 oFSO2.DeleteFile sFile2, Istina
 Else WScript.Echo strComputerName & "ne pokreće softver!" Kraj If End Ako petlja oFile.Close Else WScript.Echo "Datoteka nije bila tamo." Kraj If Set Shell = Ništa nije postavljeno oFSO = Ništa WScript.Quit

Ova skripta koristi Windows podsustav za prvo otvaranje “terminallist.ini” datoteka koja u osnovi ima sve datoteke udaljenog računala kojima pokušavate pristupiti. U ovom slučaju, za moj test ima tri retka koji sadrže MyComputerName, MyOtherComputer i YetAbodyComputer.

Gornja skripta spustit će vaš popis računala, pristupiti udaljenom računalu pomoću mrežnog puta (očito morate biti administrator), a ako datoteka postoji, izbrisati će je. Ako datoteka ne postoji, izdat će upozorenje.

Pokretanje moje skripte za nadzor WSF, nije se oglasilo na prvom računalu jer je datoteka pronađena, ali je upozorila i na druga dva jer ti udaljeni programi još ne postoje i ne rade..

Sada, da biste bili sigurni da vaš softver za praćenje redovito prolazi i provjerava da sva vaša udaljena računala rade vaš program, morat ćete postaviti gornju WSF skriptu kao planirani zadatak koji se izvodi svakih 5 minuta.

Samo stvorite zadatak na vašem poslužitelju ili vašem glavnom računalu koji ukazuje na skriptu.

I stvorite neodređeni raspored koji svakih 5 minuta pokreće vašu skriptu praćenja.

Sada, s ove dvije jednostavne skripte - jedan VBA isječak ugrađen u bilo koji od postojećih Office programa i jedan Windows Script koji stalno nadgleda te udaljene programe - bit ćete upozoreni odmah kad netko zatvori taj udaljeni program ili se računalo isključi ili program umire iz bilo kojeg razloga.

Ako radite u Windows okruženju i stvorili ste puno kritičnih aplikacija pomoću softvera Office, ova je tehnika vrlo brz i jeftin (besplatan!) Način za daljinsko nadgledanje svih tih kritičnih aplikacija.

Dajte mi priliku i javite mi kako vam je uspjelo? Jeste li bili u mogućnosti impresionirati sve svoje kolege s time koliko brzo ste znali kad god vam se neki sustav pokvari? Podijelite svoja razmišljanja i iskustva u odjeljku s komentarima u nastavku.

Slikovni krediti: Mladić pokazuje putem računala putem Shutterstoka




Još ne komentari

O modernoj tehnologiji, jednostavnoj i pristupačnoj.
Vaš vodič u svijetu moderne tehnologije. Naučite kako koristiti tehnologije i uređaje koji nas okružuju svaki dan i naučite kako otkriti zanimljivosti na Internetu.