Tôi muốn thay đổi Trình bảo vệ màn hình hiện tại cho một trình tùy chỉnh (mà trước đây tôi đã tải dưới dạng tài nguyên trong Visual Studio) bằng C#. Làm thế nào có thể được thực hiện? Tôi đã tìm nó trên Google và SO, nhưng tất cả đều nói về "Cách tạo một Trình bảo vệ màn hình" chứ không phải "Cách thay đổi Trình bảo vệ màn hình". Nếu có thể, nó sẽ hoạt động trên WinXP, Vista và 7.Làm cách nào để thay đổi trình bảo vệ màn hình theo chương trình?
5
A
Trả lời
4
Tôi sẽ trả lời câu hỏi của tôi với đoạn mã mà làm việc để tôi:
public 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());
}
}
}
Sau đó, khi gọi nó từ ứng dụng của tôi:
static string ResourcePath(string resource)
{
return Application.StartupPath + "\\Resources\\" + resource;
}
Program.Screensaver.Set(Program.ResourcePath("svr1.scr"));
tôi đọc ở đâu Tôi nên viết tên không quá 8 ký tự (một chút lạ, nhưng XP giống như thế này), vì vậy trình bảo vệ màn hình của tôi được gọi là svr1.scr
(không thực sự hướng đối tượng, nhưng mẹo)
+1
Xấu xí, nhưng tôi không thể tìm ra giải pháp tốt hơn. 'InstallScreenSaver' trong' desk.cpl' hiển thị giao diện người dùng bảng điều khiển sau đó, và 'SystemParametersInfo' dường như không để lộ tính năng đó. – CodesInChaos
0
Đây là lệnh rằng cửa sổ thực hiện khi cài đặt một cái mới
rundll32.exe desk.cpl,InstallScreenSaver %l
Các vấn đề liên quan
- 1. Tôi làm cách nào để ngăn chặn trình bảo vệ màn hình và ngủ trong khi thực hiện chương trình?
- 2. Thay đổi hình ảnh theo chương trình?
- 3. Bật màn hình theo chương trình
- 4. Làm cách nào để gỡ lỗi Trình bảo vệ màn hình trong OS X
- 5. Android chụp màn hình theo chương trình
- 6. Trình bảo vệ màn hình Xcode với openGL
- 7. Làm cách nào để kiểm tra xem màn hình bảo vệ màn hình Linux có bị làm mờ màn hình
- 8. Làm thế nào để phát triển trình bảo vệ màn hình Linux
- 9. Làm cách nào để thay đổi hình ảnh được hiển thị trong UIImageView theo chương trình?
- 10. Tạo các phân đoạn toàn màn hình theo chương trình
- 11. Làm cách nào để chụp ảnh màn hình theo chương trình?
- 12. Làm cách nào để chuyển đổi tab theo chương trình?
- 13. . Trình bảo vệ màn hình Net không tìm thấy tệp cấu hình
- 14. Chụp màn hình android và tạo video theo chương trình
- 15. Chụp ảnh màn hình trang web theo chương trình
- 16. Video chụp màn hình trong iOS theo chương trình
- 17. Làm thế nào để có được màn hình DPI (linux, mac) theo chương trình?
- 18. Làm cách nào để thay đổi vị trí tệp theo chương trình?
- 19. Có gì khác biệt về xem trước Trình bảo vệ màn hình trong Windows 8?
- 20. Làm cách nào để thay đổi tiêu đề tab dojo/dijit theo chương trình?
- 21. tạo bảo vệ màn hình Windows bằng Python?
- 22. cách tạo bản xem trước trình bảo vệ màn hình trong Delphi?
- 23. Cách đặt hình ảnh làm hình nền theo chương trình?
- 24. Làm cách nào để đặt tiêu đề theo chương trình
- 25. Có cách điều chỉnh độ sáng màn hình theo chương trình không?
- 26. Làm thế nào để thay đổi màu nền của hộp thoại theo chương trình?
- 27. Giám sát Trình bảo vệ màn hình Sự kiện trong OSX
- 28. C#: Lấy tên của Trình bảo vệ màn hình được cài đặt
- 29. UISegmentedControl thay đổi số phân đoạn theo chương trình
- 30. Làm thế nào để thay đổi một biểu tượng của TextView theo chương trình?
Điều này có thể hữu ích: http://bytes.com/topic/c-sharp/answers/263953-setting-up-screensaver-via-csharp-c-application Bạn cần thực hiện qua đăng ký –
Cảm ơn bạn đã liên kết. Điều đó đã giảm bớt các bước. Tuy nhiên, nó không hoạt động cho Windows XP (trong Win7 nó hoạt động như một sự quyến rũ). Bạn có biết gì về điều đó không? – Korcholis