How to insta开发者_Go百科ll (register) screensaver programmatically?
AFAIk there are two ways:
- Permanent registration by copying it to a location that windows searches, such as
System32
. But don't hardcode "C:\Windows\System32". You need to query the system to find out where the system directory is. - Calling the
Install
action on the.scr
file, which results in temporary activation. But the screensaver will disappear once another has been selected and the dialog restarted.
But this is from Win95 times, so it's possibly outdated.
I see three ways to call install
:
- ShellExecute(Ex) using the
install
verb - Call
rundll32.exe desk.cpl,InstallScreenSaver %l
- Load
desk.cpl
as library(LoadLibrary or by declaring an import forInstallScreenSaver
) and then call theInstallScreenSaver
method with your own path as parameter.
A walkthrough here -
http://www.desktopmanagementsoftware.org/creating-an-msi-package-for-a-screensaver
精彩评论