Link to home
Start Free TrialLog in
Avatar of ThievingSix
ThievingSixFlag for United States of America

asked on

Service Changes Logon Background On Boot

I have a service that makes a background image comprised of different information (Name, IP, MAC, etc).

My intention is to have the service change the HKEY_USERS\.DEFAULT\Control Panel\Desktop\Wallpaper key before winlogon accesses it when displaying the login screen (Not welcome screen). But it doesn't seem to do it fast enough. If I reboot again the wallpaper will show, but it will be one reboot behind if you get my drift.

SystemParametersInfo() with SPI_SETDESKWALLPAPER doesn't seem to work either.

Any ideas?
Avatar of Brian Pierce
Brian Pierce
Flag of United Kingdom of Great Britain and Northern Ireland image

I'm a bit confuded here - how can you show the name before the user has logged on ?
Most people use simply BGINFO to display this info AFTER logon
Avatar of ThievingSix

ASKER

Computer Name and User Name. Both resolve from the service, the user name being SYSTEM. The issue is that the service doesn't change the registry value fast enough.
hi ThievingSix;

>>The issue is that the service doesn't change the registry value fast enough.
Have you set your service configuration to 1

Boot=0
System=1
Automatic=2
Manual=3
Disabled=4

or try to rename your service alphabitically starting from a;
eq.,
amyservice
or it can be
1myservice
I tried both those to no avail. Even tried fumbling and changing the service type to Device/File System so I could set the StartType to Boot instead of System/Automatic.

I know that it can be done. Like, for example, Auslogics registry defrag. Boots before the registry is even loaded.
Which makes me think, if a program is running even before the registry is loaded, how is it run. Does it replace itself as the bootloader?
All startups come from registry.
>>Does it replace itself as the bootloader?
No, it doesn't but it adds to another line, you can try that.

STARTUP ORDER FOR WINDOWS NT4/2000/XP
1. BootExecute
      HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute

{
autocheck autochk *
YOU can add your program here.
}

   2. Services
   3. User enters a password and logon to the system
   4. UserInit
      HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\UserInit
   5. Shell
      HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell
   6. All Users-RunOnce
      HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
   7. All Users-Run
      HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
   8. All Users-RunOnceEx
      HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
   9. All Users-RunEx
      HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunEx
  10. Current User-RunOnce
      HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
  11. Current User-Run
      HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
  12. Current User-RunOnceEx
      HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
  13. Current User-RunEx
      HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunEx
  14. Common Startup Folder
  15. Startup Folder
ASKER CERTIFIED SOLUTION
Avatar of systan
systan
Flag of Philippines image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
I haven't tried this yet, but I will as soon as I can.
Haven't had time to test, but I'm pretty sure that this is the right direction for the answer.
Thanks ThievingSix


Delphi Rocks,  Now Lazarus