Nasıl Perl durumları yakalamak Windows engelleyebilirim?

oy
4

Ben 24/7 çalışması beklenen bu Perl yazılımı var. Bu, bir IMAP sunucusuna bağlantı açmak tutar yeni posta kontrol eder ve daha sonra yeni mesajlar sınıflandırır.

Şimdi bir arada bir onun XP dizüstü hazırda bir kullanıcı var. Bu durumda, sunucu ile bağlantı başarısız olur ve bir istisna tetiklenir. çağıran kodu genellikle bu durum yakalar ve yeniden dener. Ancak bu durumda, Windows (veya Perl?) Istisnayı yakalayıp bir mesaj kutusu aracılığıyla kullanıcıya teslim gibi görünüyor.

Herkes ben wtf bu tür önleyebilir ya? Olabilir benim kod yakalamak, bir sistem-is-hakkında-hazırda sinyali?

Zaten kaldırdı bazı noktaları temizlemek için:

  • Kullanıcıların makinelerini kış uykusuna ile bir sorunum yok. Sadece bununla başa çıkmanın bir yolunu bulmalıyız.
  • Söz konusu Perl modülü bir istisna yapar. Bu böyle bir şey yapar poll_timer ' uygulama tamamen tarayıcı tabanlı ve Wx veya Tk böyle bir şey kullanmaz rağmen. 'Foo bar' die, kullanıcı bir ileti başlıklı kutu alır'. O mesaj kutusunun içeriği tam olarak içeriğini olduğunu $ @ (bu örnekte 'foo bar') ait.
  • Uygulama kullanılarak yürütülebilir derlendi PerlApp . Dokümantasyon olsa istisna işleme konusundan hiç söz etmez.
Oluştur 09/12/2008 saat 15:22
kaynak kullanıcı
Diğer dillerde...                            


4 cevaplar

oy
1

Sana bir OS düzeyinde istisna, Perl atılan değil bir şeyle uğraşıyoruz düşünüyorum. İlgili Perl modülü DLL (sanırım) bir şey için bir çağrı yapıyor ve özel durum oluyor. Yapabileceğiniz en iyi şey istisna tetikler basit, tekrarlanabilir test durumu için bu aşağı kaynamaya olacaktır (eğer kış uykusuna ve bu işlem için ilgili makineler uyanma bir sürü yapmak gerekebilir). Onlar sizin için daha yararlı bir şekilde bu istisnayı yakalama aracı ile gelip eğer Ardından, modül geliştiriciye bu bilgileri göndermek ve onlara sorun.

Modül geliştirici veya yardımcı olmaz olamaz, o zaman muhtemelen değiştirebileceğiniz bir yolu varsa modülün koduna hata ayıklama ve bittiğini tam olarak ne görmek ve görmek için Perl debugger kullanımı gerek dolayacaksın modül kendinizi yakalamak ve istisna ile uğraşmak.

Cevap 09/12/2008 saat 18:42
kaynak kullanıcı

oy
0

Ben sert hatalar için kalıcı sistem iletişim kutuları önlemek için hack bulundu (ör: "karşılaştı ve istisna ve kapatılması gerekiyor") ettik. Aynı hüner Tarif ettiğiniz hata bu tür kullanılıp kullanılamayacağını bilmiyorum ama denemeye başladı.

Bkz: “bir sorunla karşılaştı ve kapatılması gerekiyor” Windows üzerinde iletişim kaçınmak

Kısacası, değer “2" Control \ Windows \ ErrorMode kayıt defteri anahtarı \ HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet ayarlayın.

Cevap 09/12/2008 saat 19:10
kaynak kullanıcı

oy
0

Bu kodun ilgili bitlerini görmeden akıllı öneriler sunmak zordur. Program büyük ihtimalle ya kullanan bir istisna mesajı ile bir iletişim kutusu alıyorsanız Tk veya wxPerl işleri biraz zorlaştırıyor olabilir GUI kütüphanesi. Bunu dedi, benim tahminim bir eval bloğunda Hatalı noktayı sarma ve çağrısından sonra $ @ test ederek programa istisna durumları değiştirmek oldukça kolay olacağını olurdu. $ @ Bağlantısı başarısız olduğunu belirten bir hata mesajı varsa, o zaman bağlantıyı yeniden kurmak ve yoluna devam et.

Cevap 09/12/2008 saat 16:03
kaynak kullanıcı

oy
0

Kullanıcı istisna değil, kural değil. Benim laptop iş ve ev arasında hibernated edilir. İş yerinde, DHCP ağdaki açıktır; Evde, o tamamen başka üzerindedir. Çoğu program IP adresleri (VMWare, VPN, NAT router ile düz eski bağlantı) bir kafa karıştırıcı çokluğu rağmen çalışmaya devam eder. eşleşmeyenler - Derin uyku sırasında bağlantı kesme (bağlantı kesildi kadar AT & T Net Client StandBy / hazırda sürecini tutar) tanımak (VPN için AT & T Net Müşteri, ofiste kullanılmayan gerekli evde veya yolda), ve tekrar kurmada makine uyandığında uygunsa bağlantı. havaalanlarında, ben uçağa binmeden önce tamamen kablosuz (tek fiziksel switch) lokal WiFi (daha DHCP) ama dönüşü kullanın.

Yani, makine kullanışlı olmasını yazılım için bekleme ya da uyku moduna gidiyor öğrenmek için öğrenmek gerekir. Ben yok ne, söylemek üzgünüm, yapmanız gerekenler için bir reçetedir.

Google ile Bazı çalışmalar ACPI (Gelişmiş Yapılandırma ve Güç Arayüzü) solüsyonu (bir parçası olduğunu göstermektedir Microsoft ). APM (Gelişmiş Güç Yönetimi) da ilgili olabilir.

Cevap 09/12/2008 saat 15:58
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more