Geçerli Screensaver'ı C# kullanarak özel bir (Visual Studio'da daha önce bir kaynak olarak yüklediğim) için değiştirmek istiyorum. Bu nasıl yapılabilir? Bunu Google ve SO’da aradım, ancak "Ekran Koruyucu’nı nasıl değiştirebilirim" değil, "Ekran Koruyucusu Nasıl Oluşturulur" den bahseder. Mümkünse, bu WinXP, Vista çalışması gerekir ve 7.Ekran koruyucuyu programatik olarak nasıl değiştirebilirim?
5
A
cevap
4
yeni benim uygulamadan çağrılırken
Sonrapublic sealed class Screensaver
{
Screensaver() { }
const int SPI_SETSCREENSAVEACTIVE = 0x0011;
[DllImport("user32", CharSet=CharSet.Auto)]
unsafe public static extern short SystemParametersInfo (int uiAction, int uiParam, int* pvParam, int fWinIni);
public static void Set(string path)
{
try
{
RegistryKey oKey = Registry.CurrentUser.OpenSubKey("Control Panel",
true);
oKey = oKey.OpenSubKey("desktop", true);
oKey.SetValue("SCRNSAVE.EXE", path);
oKey.SetValue("ScreenSaveActive", "1");
unsafe
{
int nX = 1;
SystemParametersInfo(
SPI_SETSCREENSAVEACTIVE,
0,
&nX,
0
);
}
}
catch (Exception exc)
{
System.Windows.Forms.MessageBox.Show(exc.ToString());
}
}
}
,: beni
static string ResourcePath(string resource)
{
return Application.StartupPath + "\\Resources\\" + resource;
}
Program.Screensaver.Set(Program.ResourcePath("svr1.scr"));
yerde okudum 8 karakterden daha uzun olmayan bir isim yazmalıyım (biraz garip, ama XP bunun gibi), bu yüzden ekran koruyucum svr1.scr
(gerçekten nesne yönelimli değil, hile yapıyor) olarak adlandırılıyor
+1
Çirkin, ama daha iyi bir çözüm bulamıyorum. 'Desk.cpl' içinde InstallScreenSaver ', kontrol paneli kullanıcı arayüzünü daha sonra gösterir ve' SystemParametersInfo', bu özelliği göstermez. – CodesInChaos
0
Bu yüklerken pencereler yürütür komuttur bir ben çalıştı kod parçası ile soruma cevap olacak bir
rundll32.exe desk.cpl,InstallScreenSaver %l
İlgili konular
- 1. android olarak programatik olarak ekran parlaklığını değiştirme
- 2. iOS'ta ekran görüntüsü yakalama programatik olarak
- 3. JQuery Datatables. Geçerli sayfayı programatik olarak nasıl değiştirebilirim?
- 4. Ekran uykusunu devre dışı bırakma Android'de programatik olarak mı?
- 5. Hatırlatıcılara nasıl programatik olarak erişebilirim?
- 6. Ciltleme ÖğeleriSource programatik olarak
- 7. editActionsForRowAtIndexPath programatik olarak çağırın
- 8. Fotoğrafı html olarak nasıl değiştirebilirim
- 9. Programatik olarak menüde ayarlama görünürlüğü
- 10. Yüklemeyi/denetleyiciyi programatik olarak denetleme
- 11. Uygulama dilini programatik olarak değiştirin
- 12. Bir montaj referansını programatik olarak nasıl eklersiniz?
- 13. Programatik olarak bir stili nasıl uygularım?
- 14. Pano verilerine programatik olarak nasıl erişilir?
- 15. Politika URL'sini programatik olarak nasıl kurabilirim?
- 16. CacheMode'u bir öğeye programatik olarak nasıl ayarlarsınız?
- 17. Programatik olarak android nasıl ayarlayabilirim: button = "@ null"?
- 18. Programatik olarak kaydırma animasyonu nasıl yapılır
- 19. Android'de programatik olarak sesli postalar nasıl okunabilir
- 20. ImageView Programatik olarak nasıl yeniden boyutlandırılır
- 21. Hücre rengi programatik olarak nasıl ayarlanır epplus?
- 22. Bir plist programatik olarak nasıl silebilirim?
- 23. UINavigationBar'a istemi Programatik olarak ekle
- 24. YüzdeRelativeLayout, programatik olarak yüksekliği ayarlama
- 25. programatik olarak uiimage'ın görünürlüğünü ayarlama
- 26. Android Button Position Programatik olarak
- 27. Android oluşturma düğmesi programatik olarak
- 28. Seviye oyun görüntüsünün seviye oyun görüntüsünün ekran görüntüsüyle nasıl değiştirebilirim?
- 29. WPF kopyalama kontrolleri programatik olarak
- 30. Scrim rengini programatik olarak ayarlayın
Bu kullanışlı olabilir: http://bytes.com/topic/c-sharp/answers/263953-setting-up-screensaver-via-csharp-c-application Kayıt defterinden –
yapmalısınız. Bağlantınız için teşekkürler. Bu adımları kolaylaştırdı. Ancak, Windows XP için çalışmıyor (Win7'de bir çekicilik gibi çalışır). Bunun hakkında bir şey biliyor musun? – Korcholis