[Alg] Instellen screen saver

Pagina: 1
Acties:

  • Icelus
  • Registratie: Januari 2004
  • Niet online
Ik heb een installatie programma dat een screen saver installeert.
Aan het eind van de installatie wil ik dat het installatieprogramma de nieuwe screen saver als standaard instelt.

Ik pas hiertoe het register aan. In HKCU\Control Panel\Desktop pas ik de sleutel SCRNSAVE.EXE aan (pad naar screen saver) en geef ScreenSaveActive de waarde '1'.

Dit werkt echter niet; de screen saver wordt niet als standaard ingesteld.

Moet ik het register op een andere plek aanpassen?

Developer Accused Of Unreadable Code Refuses To Comment


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Geef je wel het juiste type mee? (REG_SZ)

Who is John Galt?


  • Icelus
  • Registratie: Januari 2004
  • Niet online
Ja, beide REG_SZ.

Developer Accused Of Unreadable Code Refuses To Comment


Verwijderd

Ik weet nog dat toen je dit soort dingen nog via de WIN.INI deed, je als laatste ook nog een WM_WININICHANGED in het gehele systeem moest broadcasten. Misschien dat zoiets ook in dit geval nodig is ?

  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
blijft de oude screensaver als standaard ? Moet je deze niet eerst disablen ?

Verwijderd

Misschien heb je hier iets aan : http://www.preview.org/q/q2072.shtml

  • Icelus
  • Registratie: Januari 2004
  • Niet online
Ik heb verschillende manieren geprobeerd:
* SendMessage met HWND_BROADCAST en WM_SETTINGCHANGE
* SystemParametersInfo met SPI_SETSCREENSAVEACTIVE

Als ik handmatig een screen saver selecteer wordt de sleutel in het register aangepast. Na het uitvoeren van de installatie zijn de sleutels gewijzigd maar kijk ik vervolgens op het tabblad "Screen Saver" (rechter muisknop, eigenschappen) is de standaard instelling "geen" weer terruggezet.

Ik heb het idee dat ik op een andere plaats in het register moet zijn.

Developer Accused Of Unreadable Code Refuses To Comment


Verwijderd

Heb je ook gekeken naar die link die ik had geplaatst ? Daar staat in hoe het wel zou moeten kunnen ( raar genoeg iets te doen met SYSCOLOR )

  • Tomatoman
  • Registratie: November 2000
  • Laatst online: 22-05 15:35

Tomatoman

Fulltime prutser

Icelus schreef op 24 september 2004 @ 16:33:
Ik heb verschillende manieren geprobeerd:
* [...]
* SystemParametersInfo met SPI_SETSCREENSAVEACTIVE
Waarom niet SystemParametersInfo met SPI_SETDESKWALLPAPER, eventueel in combinatie met SPIF_UPDATEINIFILE?

Een goede grap mag vrienden kosten.


  • Icelus
  • Registratie: Januari 2004
  • Niet online
Heb je ook gekeken naar die link die ik had geplaatst ? Daar staat in hoe het wel zou moeten kunnen ( raar genoeg iets te doen met SYSCOLOR )
Ja, WM_SETTINGCHANGE gebruikt icm met HWND_BROADCAST. SetSysColor gebruik maakt niet uit.
Waarom niet SystemParametersInfo met SPI_SETDESKWALLPAPER, eventueel in combinatie met SPIF_UPDATEINIFILE?
SPIF_UPDATEINIFILE inderdaad gebuikt (niet aangegeven eerder). Waarom SPI_SETDESKWALLPAPER gebruiken om een screen saver te veranderen?

Developer Accused Of Unreadable Code Refuses To Comment


  • Tomatoman
  • Registratie: November 2000
  • Laatst online: 22-05 15:35

Tomatoman

Fulltime prutser

Icelus schreef op 24 september 2004 @ 17:41:
[...]
Waarom SPI_SETDESKWALLPAPER gebruiken om een screen saver te veranderen?
Misschien omdat ik onzin uitkraamde? :o

Maar wat dacht je hiervan? Lees vooral de tekst die ik cursief heb gemaakt.
[q]SCRNSAVE.EXE HKCU\Control Panel\Desktop

code:
1
2
Data     typeRange   Default value 
REG_SZ   File name   (None)


Description
Specifies the name of the screen saver executable file.

Change Method
• To change the value of this entry, in Control Panel double-click Display, click the Screen Saver tab, and then select a screen saver from the Screen saver list.
You can also change this entry with the application programming interface (API) function InstallScreenSaver, which is exported by Desk.cpl. You can access this function with the command line rundll32.exe desk.cpl,InstallScreenSaver %1, where %1 is the name of a screen saver executable file.

Activation Method
Changes made to this entry become effective the next time the system starts a screen saver. Changes made to this entry while a screen saver is running have no effect on the running screen saver.

Notes
• Windows operating systems add this entry to the registry when you use Display in Control Panel to select a screen saver. If you disable all screen savers by choosing (None) from the Screen Saver list, then the operating system deletes this entry from the registry and calls the SystemParametersInfo function with uiAction equal to SPI_SETSCREENSAVEACTIVE and uiParam equal to FALSE.
On a computer that is running the Windows NT, Windows 2000, or Windows XP operating systems, this entry can be superseded by a Group Policy setting. While the Screen saver executable name Group Policy setting is enabled, the system ignores this entry. The configuration of the Screen saver executable name Group Policy setting is stored in the SCRNSAVE.EXE entry, which is in the Policies subkey.

[ Voor 1% gewijzigd door Tomatoman op 24-09-2004 17:54 . Reden: opmaak verbeterd ]

Een goede grap mag vrienden kosten.


  • Icelus
  • Registratie: Januari 2004
  • Niet online
You can also change this entry with the application programming interface (API) function InstallScreenSaver, which is exported by Desk.cpl. You can access this function with the command line rundll32.exe desk.cpl,InstallScreenSaver %1, where %1 is the name of a screen saver executable file.
Dat werkt inderdaad perfect. Enige nadeel is dat het tabblad voor de screen saver geopend/getoond wordt.

Bedankt iedereen.

Developer Accused Of Unreadable Code Refuses To Comment


  • Tomatoman
  • Registratie: November 2000
  • Laatst online: 22-05 15:35

Tomatoman

Fulltime prutser

Door instellingen in een group policy kunnen de registerinstellingen voor screensavers over twee locaties verdeeld zijn, een programmeerfout is daardoor snel gemaakt. Voor de Delphi-ontwikkelaars heb ik een class in elkaar gezet die een wrapper vormt om alle screensaverinstellingen. Je kunt er ook de screen saver mee instellen zonder dat het tabblad voor de screensaverinstellingen wordt geopend.

Een goede grap mag vrienden kosten.

Pagina: 1