VBA Uygulamalarınız Bu Kaygan Komut Dosyası ile Çalışıyor mu?

  • William Charles
  • 0
  • 1380
  • 298
reklâm

Senin için bir senaryo çizmeme izin ver. Diyelim ki işte büyük bir TV ekranında kalıcı olarak görüntülemek istediğiniz kayan bir Powerpoint slayt gösterisi oluşturduğunuzu varsayalım. Veya, belki de çalışanlarınızın veritabanına bilgi yazmaları için bir giriş formu içeren bir Excel uygulamanız olabilir..

Bir uygulamanın bazı uzak bilgisayarlarda çalışıp çalışmadığını izlemek isteyip istemediğinizin birçok nedeni vardır. Bu, size yardımcı olması için bir BT uzmanına ihtiyaç duyacağınız karmaşık bir üst düzey gereksinim gibi gelebilir, ancak bunun sizin başarabileceğiniz bir görev olduğunu söylemek için buradayım.

Size, Excel'den e-postalar göndermek gibi, daha önce VBA ile ilgili diğer karmaşık görevleri nasıl yapacağınızı göstermemize güvendesiniz, VBA Komutlarını Kullanarak Bir Excel E-Sayfasından E-posta Göndermek VBA Komut Dosyalarını Kullanarak Bir E-posta E-postasını Göndermek Collaboration Data Objects (CDO) ve VBA komut dosyalarını kullanarak Excel'den otomatik e-postalar kurmanıza yardımcı olur. , bilgileri Windows panosuna iletmek Panosunu Kullanarak VBA Uygulamaları Arasında Herhangi Bir Bilgiyi Geçmek Panosunu Kullanarak VBA Uygulamaları Arasında Herhangi Bir Bilgi Geçmek VBA ile belirli uygulamalarda çalışmanın en sinir bozucu parçalarından biri, iki uygulamanın her zaman kolay olmamasıdır. “konuşma” birbirlerine. Çok hızlı işlemler için deneyebilirsiniz… ve Excel'i entegre etme Excel Verilerini bir Word Belgesine Entegre Etme Excel Verileri'ni bir Word Belgesine Entegre Etme Çalışma haftanızda muhtemelen kendinizden bilgi kopyalayıp yapıştıracağınız pek çok zaman olabilir. Excel'e Word'e veya başka bir yoldan. Bu, insanların sık sık yazılı raporlar üretme şeklidir… verileri bir Word belgesine.

Şimdi, tüm bunlar nispeten pasifti. Bir bilgisayarda e-posta göndermek veya bir uygulamadan diğerine veri aktarmak bir şeydir, ancak bu durumda bir bilgisayarda çalışan bir uygulamayı, uzak bir bilgisayarda çalışan başka bir uygulamayı izleyeceğiz. Mümkün - güven bana.

Uzaktan Uygulama İzleme Sistemi

Bu temelde kurulumun her iki ucunda sadece birkaç basit kod satırıyla sizi işyerinde bir kahramana dönüştürebilecek bir sistemdir.

Kurulum neye benzeyecek? Temel olarak, bu kurulum büyük bir TV ekranında bir şey görüntüleyen veya bir Excel veri giriş ekranı çalıştıran veya VBA'lı bir Office uygulaması olan başka herhangi bir şeyde olabilecek birden fazla uzak bilgisayar sistemiyle çalışabilir..

El Sıkışma VBA Komut Dosyası

Buradaki örnekte, VBA uygulamasının her 5 saniyede c: \ temp \ handshaking \ dizinindeki yerel bilgisayarın sabit diskine bir dosya yazdığı bir bilgisayar oluşturacağım. Ardından, uzaktan izleme bilgisayarı dosya için her zaman bu dizini uzaktan kontrol edecektir. Dosya varsa, onu silecektir (çünkü uzak program çalışıyorsa, dosyayı yeniden oluşturması gerekir). Dosya yoksa, bu bilgisayardaki uygulamanın artık çalışmadığı konusunda bir uyarı verir..

İşte neye benziyor.

İlk önce, her 5 saniyede bir el sıkışma dosyasını yazacak olan yerel Office uygulamanıza VBA komut dosyasını nasıl ekleyebileceğinizi göstereceğim (dosya zaten yoksa).

Örneğimde, komut dosyasının nasıl çalıştığını göstermek için iki düğme oluşturdum, ancak uygulamanızda “El Sıkışmasını Başlat” Uygulama başladığında komut dosyası. Excel'de, bu Çalışma Sayfası -> Etkinleştirme işlevidir.

El sıkışma dosyasını yazacak olan komut dosyasına başlamadan önce, Microsoft Scripting Runtime başvurusunu etkinleştirmeniz gerekir - bu VBA uygulamanızın Window'un dosya işleme araçlarına erişmesine izin verir. Buna VBA editöründen Araçlar -> Referanslar menüsünü tıklayarak erişebilirsiniz..

Sadece aşağı kaydırın, Microsoft Scripting Runtime'ı seçin ve gitmeniz iyi olur..

Düzenli olarak, el sıkışma dosyasının var olup olmadığını kontrol edin. 'Olmazsa, yeni bir dosya yazın. 'Dosya bilgisayar kimliği ile adlandırılmıştır, böylece monitör hangisinin sorun yaşadığını bilir'. 'Zamanlayıcı komut dosyası düzenli olarak c: \ scripts \ handshake \ dosyasını kontrol eder. Dim intTime Tamsayı Olarak Dim sFile Dize Olarak Dim sPath Dize Olarak Dim SFname Dize Olarak Dim i Dimger Olarak Sınama intTime = 5 i = FreeFile TimerOn = Doğru sFile = "c: \ Temp \ MyComputerName.txt" iken TimerOn = İkinci ise (Şimdi ise) > (intTime + 5) Or Second (Şimdi) = 0 Sonra 'Dosyanın var olup olmadığını kontrol et' Olmazsa, yeniden oluştur Dir (sFile) = - Sonra 'Dosya yoksa, onu yeniden oluştur MsgBox "oluşturuldu" sFile'i Çıktı İçin Aç " #İ Olarak Sonu Kapatın Eğer intTime = Saniye (Şimdi) Sayfalar ("sayfa1"). Aralık ("a1"). Değer = Eğer Sona Erirse Süre Sonu

Bu betik sadece değişken tanımlarını saymazsanız 16 satıra sahiptir, bu basit bir betik! Tek yaptığı her 5 saniyede bir çalışan bir zamanlayıcı döngüsü ayarlamak. El sıkışma dosyasının var olup olmadığını kontrol eder. Olmazsa, dosyayı yeniden oluşturur.

Eğer düşünürseniz, bu, uygulamanın canlı ve çalışır durumda olduğunu dünyaya anlatmanın basit ve yaratıcı bir yoludur. Sana ne demek istediğimi göstereyim. Tıkladığımda “El Sıkışmasını Başlat” düğmesine basın ve sonra c: \ temp \ handshaking \ dizinine gidin, VBA komut dosyamın yeni dosyayı oluşturduğunu görebiliyorum. Boş bir dosya, ancak önemli değil - dosyanın var olması önemli olan.

Komut dosyamı test etmek için metin dosyasını el ile dizinden silerim..

Birkaç saniye sonra dosya tekrar belirir.

Bu, bu noktada, uygulamanızın dışındaki herhangi bir kişinin veya herhangi bir şeyin, o dosyayı silerek ve ardından dosyanın yeniden görünüp görünmediğini kontrol ederek programınızın açık olup olmadığını kontrol edebileceği anlamına gelir. Basit - henüz verimli!

Uzaktan İzleme Komut Dosyası Oluşturma

Artık tüm uzak uygulamalarınızda VBA el sıkışma komut dizenizin yayınlandığını doğruladıktan sonra, bu uzak uygulamaların çalışıp çalışmadığını izleyen bir sunucuda veya belki de kendi çalışma bilgisayarınızda çalışan merkezi bir program oluşturmak isteyeceksiniz..

Bunu yapmanın en iyi yolu, bir GUI ön ucu olmadan arka planda çalışan bir komut dosyasıdır. Uzaktan uygulamalardan herhangi biri çalışmayı durdurduğunda, komut dosyasının tek yapması gereken sizi uyaracaktır. Bu uygulama için mükemmel bir araç Windows betiğidir. Sadece handshaking.wsf adlı yeni bir metin dosyası oluşturun ve aşağıdaki betiği yapıştırın.

Seçenek Açık Açık Hata Devam Son Dim strHost Dim strBilgisayarAdı Dim ReturnCode Dim strLine Dim Kabuk Dim oFSO, sFile, oFile, sText Dim oFSO2, sFile2, oFile2, sText2 Dim stFFededList Küme Kabuğu = wscript.create_tr "" CreateObject ("Scripting.FileSystemObject") Set oFSO2 = CreateObject ("Scripting.FileSystemObject") olarak ayarlayın sFile = "\\ MyComputerName \ c $ \ users \ owner \ owner \ scripts \ handshaking \ terminallist.ini" strFailedList = "" (". sFile) Sonra oFile = oFSO.OpenTextFile Ayarla (sFile, 1) oFile.AtEndOfStream Olmazsa Yapın sText = oFile.ReadLine Trim (sText) - Sonra strComputerName = Kesin (sText) sFile2 = "\\" & stComputerName = $ \ users \ owner \ scripts \ handshaking \ "& strComputerName &" .txt "
 Eğer oFSO2.FileExists (sFile2) ise
 oFSO2.DeleteFile sFile2, Doğru
 Else WScript.Echo strComputerName & "yazılımı çalıştırmıyor!" Bitirirse Bitirir Döngü Döndür oFile.Close Else WScript.Echo "Dosya orada değildi." Set Shell = Nothing Set ise oFSO = Nothing WScript.Quit

Bu komut dosyası, öncelikle dosyayı açmak için Windows Dosya alt sistemini kullanır. “terminallist.ini” Temel olarak erişmeye çalıştığınız tüm uzak bilgisayar dosyalarının bulunduğu dosya. Bu durumda, testim için MyComputerName, MyOtherComputer ve YetAnotherComputer'ı içeren üç satır vardır..

Yukarıdaki komut dosyası bilgisayar listenize girecek, ağ yolunu kullanarak uzaktaki makineye erişecek (açık bir şekilde yönetici olmanız gerekir) ve dosya varsa, onu silecektir. Dosya yoksa, bir uyarı verir.

WSF izleme komut dosyamı çalıştırdığınızda, dosya bulunduğundan ilk bilgisayarda uyarı vermedi, ancak dosya bulunduğundan diğer ikisinde de uyarı verdi, çünkü bu uzak uygulamalar henüz mevcut değil ve çalışmıyor.

Şimdi, izleme yazılımınızın düzenli olarak çalıştığından ve tüm uzak bilgisayarlarınızın programınızı çalıştırıp çalıştırmadığından emin olmak için yukarıdaki WSF komut dosyasını her 5 dakikada bir çalışan zamanlanmış bir görev olarak ayarlamanız gerekir..

Sadece sunucunuzda veya ana PC'nizde komut dosyasını işaret eden bir görev oluşturun.

Ve her 5 dakikada bir izleme komut dosyanızı çalıştıran belirsiz bir zamanlama oluşturun.

Şimdi, yalnızca bu iki basit komut dosyasıyla - mevcut Office programlarınızın herhangi birine gömülü bir VBA snippet'i ve bu uzak programları sürekli izleyen bir Windows Komut Dosyası - birileri o uzak programı kapattığında veya bilgisayar kapandığında anında uyarılacaksınız , ya da program herhangi bir sebeple ölür..

Windows ortamında çalışıyorsanız ve Office yazılımını kullanarak çok sayıda kritik uygulama oluşturduysanız, bu teknik tüm bu kritik uygulamaları uzaktan izlemek için çok hızlı ve ucuz (ücretsiz!) Bir yöntemdir..

Bir şans ver ve senin için nasıl çalıştığını bilmeme izin ver. Sisteminizden biri ne zaman çöktü, ne kadar çabuk bildiğinizi tüm meslektaşlarınızı etkileyebildiniz mi? Düşüncelerinizi ve deneyimlerinizi aşağıdaki yorumlar bölümünde paylaşın.

Resim Kredisi: Shutterstock ile Bilgisayarı Gösteren Genç Adam




Henüz no comments

Modern teknoloji hakkında basit ve uygun fiyatlı.
Modern teknoloji dünyasında rehberiniz. Her gün bizi çevreleyen teknolojileri ve araçları nasıl kullanacağınızı ve Internet'te ilginç şeyleri nasıl keşfedeceğinizi öğrenin.