• 0

[C#] Enable/ disable screen saver


Question

Hello,

I'm trying to use SystemParametersInfo in order to disable/ enable the screen saver. I try this:

[DllImport("user32", CharSet=CharSet.Auto)]
  	private static extern bool SystemParametersInfo(int uAction, bool uParam, int lpvParam, int fuWinIni);
  
  [DllImport("user32", CharSet=CharSet.Auto)]
  	private static extern bool SystemParametersInfo(int uAction, int uParam, bool lpvParam, int fuWinIni);

private const int HWND_BROADCAST = 65535;
  private const int WM_SYSCOMMAND = 274;
  private const int SC_SCREENSAVE = 61760;
  private const int SPI_GETSCREENSAVETIMEOUT = 14;
 private const int SPI_SETSCREENSAVETIMEOUT = 15;
 private const int SPIF_UPDATEINIFILE = 1;
 private const int SPIF_SENDWININICHANGE = 2;
 private const int SPI_SETSCREENSAVEACTIVE = 17;
private const int SPI_GETSCREENSAVEACTIVE = 16;

bool IsActive;

SystemParametersInfo(SPI_GETSCREENSAVEACTIVE, 0, IsActive, 0);
// disable the screen saver if it is enabled
if(IsActive)
{
SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, false, 0, 0);
}

But it doesn't work :( I'm not sure that the SystemParametersInfo is OK, and I don't know how to use SPI_GETSCREENSAVEACTIVE and SPI_SETSCREENSAVEACTIVE.

Can anybody please tell me how to use it ?

Link to comment
https://www.neowin.net/forum/topic/298659-c-enable-disable-screen-saver/
Share on other sites

9 answers to this question

Recommended Posts

  • 0

I use this code but in VB.net, try to convert it to C# ;)

Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Integer, ByVal uParam As Integer, ByVal lpvParam As Integer, ByVal fuWinIni As Integer) As Integer
    Public Function ToggleScreenSaverActive(ByRef Active As Boolean) As Boolean
        Dim lActiveFlag As Integer
        Dim retvaL As Integer

        lActiveFlag = IIf(Active, 1, 0)
        retvaL = SystemParametersInfo(17, lActiveFlag, 0, 0)
        ToggleScreenSaverActive = retvaL > 0
    End Function


    ' On
        ToggleScreenSaverActive(True)


    ' Off
        ToggleScreenSaverActive(False)

  • 0
  yyy said:
I know how to do that - it works fine. This is not the problem.

My problem is that I want to GET the screen saver state so I'll know whether the screen saver is active or not.

For that I need to use SPI_GETSCREENSAVEACTIVE

Do you know how to use that ?

585642321[/snapback]

ok change it to the line :

Private Const SPI_GETSCREENSAVEACTIVE As Long = &H10

and give a try

  • 0

No - I know that too. Nevermind - I've found the solution, I think.

I did it that way:

[DllImport("user32", CharSet=CharSet.Auto)]
 ?private static extern bool SystemParametersInfo(int uAction, int uParam, ref bool lpvParam, int fuWinIni

SystemParametersInfo(SPI_GETSCREENSAVEACTIVE, 0, ref IsActive, 0);

I had to add the ref before the bool to cause it get the value.

Thanks anyway :DD

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • I think they mean a phone like the s6 edge where it breaks on first drop guarantee
    • This high-end GEEKOM Mini IT12 (2025 Edition) PC has been slashed by $200 by Steven Parker GEEKOM reached out to let us know of a discount it is running on its site in the U.S., where you can save $200 off the i7 model of Mini IT12 2025 Edition. That brings the already discounted price of $699 down to just $499; buying link below. Below are the full specifications of the variant on offer GEEKOM Mini IT12 (2025 Edition) Dimensions Size 117 x 112 x 45.6mm Weight 652g CPU Intel Core i7-1280P (14 Cores, 20 Threads, 24MB Cache, up to 4.80 GHz) Graphics Intel® Iris® Xe Graphics Memory 32 GB Dual-channel DDR4-3200 SODIMM; expandable up to 64GB Storage 1 TB x M.2 2280 PCIe Gen 4 x4 SSD, expandable up to 2TB 1 x M.2 2242 SATA SSD slot, expandable up to 1TB Operating System Windows 11 Pro Bluetooth Bluetooth® v5.2 Ethernet Intel® 10/100/1000/2500 Mbps RJ45 Ethernet Wireless LAN Intel® Wi-Fi 6E AX211 Kensington Lock Yes Adapter 19V power adapter, 90W, with geo-specific AC cord (IEC C5) I/O Ports 3 x USB 3.2 Gen 2 ports 1 x USB 2.0 port 2 x USB4 ports 1 x SD card reader 1 x 3.5 mm headphone jack 1 x 2.5GbE LAN port 2 x HDMI 2.0 ports 1 x DC jack 1 x Power button MSRP $699 (see below for discount price) You may remember that we reviewed the i7-1260P variant in 2023. Here are our initial impressions of the Mini IT12 at the time. Once you have the PC out of the cushioning inside the box and the foam removed, you are greeted with a Thank You envelope. Below that, after removing the cardboard "shelf," you can find the other components, such as the power lead, HDMI cable, VESA mount plate with a bag of screws, and the instruction manual. What’s In The Box 1 x Mini IT12 Mini PC 1 x VESA Mount 1 x Power Adapter 1 x HDMI Cable 1 x User Guide 1 x Thank You Card As you can see, one HDMI cable is included in the box. Since the port is not HDMI 2.1, you will need to consider purchasing a mini DisplayPort cable or a USB4 (Type-C) to DisplayPort cable to maximize the potential of the Iris Xe Graphics display options. In addition, GEEKOM offers a one-year full warranty on its products, and if needed, you can RMA or return them locally relative to your region (the U.S. has a U.S. warehouse, and the E.U. has a Germany warehouse). Buy the i7-1280P Mini IT12 (2025 Edition) for $499 (was $699) at GEEKOM U.S. Buy the i7-1280P Mini IT12 (2025 Edition) for $499 (was $699) at Amazon U.S. When checking out, use the $30 in-page coupon or NEOIT122025 coupon code. Best of all, the shipping is quick and free.
    • That's ######ing hilarious! And it sure works when you look at both of their faces.
    • When it comes to games specifically, sure, but until now the main focus has been on doing work. All you have to do is look at how hard they're pushing AI in the productivity space to see that they've got their enterprise users in mind 1st with gamers lower on the list. Now that should all change, at least for custom gaming devices like handhelds and even, I expect, custom mini-PCs that are like consoles you can put under your TV. The whole "Xbox PC" branding they had around the show says a lot IMO.
    • I'm excited to check this out. I never played the first version, but I did just finish playing through Smalland, and while I liked it, I found myself wishing for more engaging content.
  • Recent Achievements

    • Enthusiast
      the420kid went up a rank
      Enthusiast
    • Conversation Starter
      NeoToad777 earned a badge
      Conversation Starter
    • Week One Done
      VicByrd earned a badge
      Week One Done
    • Reacting Well
      NeoToad777 earned a badge
      Reacting Well
    • Reacting Well
      eric79XXL earned a badge
      Reacting Well
  • Popular Contributors

    1. 1
      +primortal
      470
    2. 2
      +FloatingFatMan
      282
    3. 3
      ATLien_0
      249
    4. 4
      snowy owl
      202
    5. 5
      Edouard
      196
  • Tell a friend

    Love Neowin? Tell a friend!