2009-07-02 19 views
14

Ofiste, gece için ayrıldığımda çok nadiren oturumu kapatıyorum veya yeniden başlatıyorum. İş istasyonumu kilitledim ve eve gidip tüm gelişim araçlarını bıraktığım gibi bıraktım.Windows Update bir yeniden başlatma zorlarsa, uygulamamı nasıl yeniden başlatırım?

Windows Güncellemesi, makinemi gece yarısında alır ve yeniden başlatırsa, yalnızca hafif bir şekilde beklerim çünkü ertesi sabah tekrar oturum açtığımda, herhangi bir MS Office uygulaması veya çalıştırdığım Visual Studio örneğini kullanacağım zaten otomatik olarak yeniden başlatılmış, üzerinde çalıştığım dosya/projeleri/çözümleri açabilirim.

Soruma Soru: Windows Forms uygulamalarımı (C#) bunu nasıl yapabilirim? Sistemimin otomatik olarak yeniden başlatılması durumunda yeniden başlatılmasını istediğim "kayıt" başvurumun bir yolu var mı?

+0

WPF uygulamaları için de bunu bilmek isterim. Bunun GUI çerçevesinden bağımsız olacağını tahmin ediyorum. – JCCyC

+0

Yürütmeyi başlangıçta yapmaya çalıştınız mı? – northpole

+0

@birdlips: İstenen davranış bu değil. Uygulamamı istemiyorum * her zaman * Windows başladığında başlıyor. Sadece Windows Update, Windows kapatıldığında çalışıyordu. – Yoopergeek

cevap

8

Ben düşününRegisterApplicationRestart Win32 API işlevi, sonra ne olabilirsiniz, Yeniden Başlat Yöneticisi API'sinin bir parçası olabilir.

+2

Desteklenen minimum istemci platformunun Windows Vista olduğunu unutmayın. –

+0

Bu, C++ için olmayı çok istiyor. Artık yönetilen yeniden başlatma ve kurtarma api var. –

+0

@Jacob - umm, yup - bu yüzden bir Win32 işlevi olduğunu söyleyeyim, OP'in bir PInvoke çağrısı yapmasını engelleyecek hiçbir şey yok =) – Rob

4

Windows Vista veya Windows 7'ye sahipseniz, Yönetilen Yeniden Başlatma ve Kurtarma API'sini kullanabilirsiniz. bazı yararlı bir blog

http://channel9.msdn.com/posts/DanielMoth/Windows-Vista-Restart-amp-Recovery-APIs-from-managed-code/

+1

Küçük bir nokta (sadece Daniel Moth'un blog girişlerini yeniden okuyarak, onları orijinal olarak okurken hatırlıyorum Şimdi yayınlandı!) - Yönetilen koddan WIn32 API'sini nasıl çağırmanız gerektiğini gösteren bir Yönetilen API aslında yok;) – Rob

+0

İyi video bağlantısı. Ancak bu soruya cevap vermiyor: Uygulamamın, Windows Update'in Windows yeniden başlatılmasını zorladığında kapatmaya zorlandığında Windows yeniden başlatıldığında yeniden başlatılmasını istiyorum. Uygulamam çakılmayan alevlerin ateş topu içinde başarısız oluyor. – Yoopergeek

+0

Sanırım sorunuza cevap veriyor. Her iki durumda da işlev çağrılacağını düşünüyorum. İşte bunu göstermek için görünüyor .NET Rocks transkriptleri için bağlantı.Sayfa 7 http://perseus.franklins.net/dotnetrocks_0443_kate_gregory.pdf –

0

1. Adım girişleri için o sayfadaki bağlantıları da işaret: Standart birinden bir windows tetiklenen yeniden ayrıştırılması için bir yol anlamaya. Bir çözüm ön işlemeyi messages denemek olacaktır. Pencerede tetiklenen bir yeniden başlatma için muhtemelen farklıdırlar ... ya da en azından bazı durumlarda Vista'dadırlar:/

Adım 2: Windows tarafından tetiklenen bir yeniden başlatma olduğunu algılarsanız, zamanlanmış bir kerelik ekleyin. görev.

2

basit bir yolu aşağıdaki kayıt defteri anahtarına bir girdi eklemektir:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce 

Sadece (isteğe bağlı olarak komut satırı argümanları dahil) uygulamanızın yolunu içeren bir değeri oluşturun. Uygulama bir sonraki başlangıçta çalıştırılacak, daha sonra değer silinecektir.

İlgili konular