• 0

C# Screen saver?


Question

Recommended Posts

  • 0

Yeah, your right, i cant get the name, but i checked and windows cant either, i get "Flying_Windows" in the display control panel list

It is because the screen saver has been made wrong, instead of the name of the screensaver being resource 1, it's resource 100

So, i recommend putting in some fail safe code, e.g. check for the name of the screensaver, if the string returned is nothing, then display the name of the screensaver as the file name with the extension cut off

  • 0
Ok, im done, i have code that can set and retrieve the time-out, i was going to post it earlier, but my browser crashed and i decided to change some stuff.

Declarations:

? ?<DllImport("user32", CharSet:=CharSet.Auto)> _
 ? ?Private Shared Function SystemParametersInfo(ByVal uAction As Integer, ByVal uParam As Integer, ByRef lpvParam As Integer, ByVal fuWinIni As Integer) As Integer
 ? ?End Function

 ? ?Private Const SPI_GETSCREENSAVETIMEOUT = 14
 ? ?Private Const SPI_SETSCREENSAVETIMEOUT = 15
 ? ?Private Const SPIF_UPDATEINIFILE = &H1
 ? ?Private Const SPIF_SENDWININICHANGE = &H2

Code:

? ?Public Function GetScreenSaverTimeOut() As Integer
 ? ? ? ?Dim lRet As Integer
 ? ? ? ?Dim lSeconds As Integer

 ? ? ? ?lRet = SystemParametersInfo(SPI_GETSCREENSAVETIMEOUT, 0, lSeconds, 0)
 ? ? ? ?If lRet > 0 Then
 ? ? ? ? ? ?GetScreenSaverTimeOut = lSeconds / 60
 ? ? ? ?Else
 ? ? ? ? ? ?GetScreenSaverTimeOut = -1
 ? ? ? ?End If
 ? ?End Function

 ? ?Public Function SetScreenSaverTimeOut(ByVal NewValueInMinutes As Integer) As Boolean
 ? ? ? ?Dim lRet As Integer
 ? ? ? ?Dim lSeconds As Integer
 ? ? ? ?lSeconds = NewValueInMinutes * 60
 ? ? ? ?lRet = SystemParametersInfo(SPI_SETSCREENSAVETIMEOUT, lSeconds, Nothing, SPIF_UPDATEINIFILE + SPIF_SENDWININICHANGE)
 ? ? ? ?SetScreenSaverTimeOut = lRet <> 0
 ? ?End Function

It's pretty much self explanatory.

Also, yyy, if you want to see the similarities between vb.net and c#, i recommend you get a copy of .NET Reflector, it's a fully working Disassembler and De-compiler for .net, it allows you to choose from multiple languages, e.g. De-compile a vb app into c#, or vice-versa, it's really good.

Also 2, since you and weenur have been so good, and since im feeling generous, pm me if you:Dant a gmail account (I'm feeling generous because i got 6 invites today :D )

Edit: I'll need your names and e-mail address's to send the invites.

Can you convert it to c# ? I can't convert it. I get a lot of error messages.

  • 0

Almost all. I tried this:

[DllImport("user32", CharSet=CharSet.Auto)]
 ?private static int SystemParametersInfo(int uAction, int uParam, ref int lpvParam, int fuWinIni)
 ?{
 ?}
private const void SPI_GETSCREENSAVETIMEOUT = 14;
 ?private const void SPI_SETSCREENSAVETIMEOUT = 15;
 ?private const void SPIF_UPDATEINIFILE = 1;
 ?private const void SPIF_SENDWININICHANGE = 2;

int lRet;
 ?	int lSeconds;
 ?	lSeconds = NewValueInMinutes * 60;
 ?	lRet = SystemParametersInfo(SPI_SETSCREENSAVETIMEOUT, lSeconds, null, SPIF_UPDATEINIFILE + SPIF_SENDWININICHANGE);
 ?	SetScreenSaverTimeOut = lRet != 0;

But it tells me that there's a poblem with the void. So I replaced it with int. Then it says that this : [DllImport("user32", CharSet=CharSet.Auto)] line is wrong and many others. I just don't know how to write it in c#.

PS - it is sad to know that you won't be here for a l:(g time :(

  • 0

Yeah, I'm sad about that to (damn financial situation (and family problems) i can afford broadband, but i get told i cant afford it, so im stuck on pre-paid dial-up)

Also, since i don't know much about c#, i realised i cant help you with that, your probably going to have to wait until weenur comes back and reads the thread (looks like i cant help you with much more now)

So, ill be back in about 2 or 3 weeks (maybe more :angry: )

  • 0

:no: :no: :no: It isn't what I ment:

The information in this article applies to:

Microsoft Windows 2000 Server

Microsoft Windows 2000 Advanced Server

Microsoft Windows 2000 Professional

Microsoft Windows 2000 Datacenter Server

That page relates to non Winodws XP versions. These versions doesn't even have the Welcome Screen. I did it once and it worked. I think I just need to use an API but how? I believe that runnung a screen saver using an API will do it.

  • 0

And one more thing - can I lauch a screensaver's settings menu with Process.Start() ? How? I tried Process.Start("c:\window\system32\ss3d.scr" + "/c") but it just showed it in full mode :( Can I make it with process? I want my program to do something when the process exites so that's why I'm asking.

  • 0
And one more thing - can I lauch a screensaver's settings menu with Process.Start() ? How? I tried Process.Start("c:\window\system32\ss3d.scr" + "/c") but it just showed it in full mode :( Can I make it with process? I want my program to do something when the process exites so that's why I'm asking.

I found out how to do it :laugh: Now - Does somebody know how to activate a screensaver using an API? In c#?

  • 0
Oh my Muh!!

I am wrong in the begining..

it looks as I had better study English hard

you can use this

PostMessage(WM_SYSCOMMAND,SC_SCREENSAVE,0);

to act current ScreenSaver

I think you want to get current Screen picture at the begining.

faint~

this is the code;

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Int32, ByVal wMsg As Int32, ByVal wParam As Int32, ByVal lParam As Int32) As Int32
 ? ?Private Const HWND_BROADCAST = &HFFFF&
 ? ?Private Const WM_SYSCOMMAND = &H112
 ? ?Private Const SC_SCREENSAVE = &HF140&

 ? ?Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 ? ? ? ?SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_SCREENSAVE, 0)
 ? ?End Sub

I use VB more  than C#.

So this code is in VB style.


T:laugh:korls :laugh:

  • 0

congrats on getting it working, it looks like a cool tile, and although you weren't going to do it on longhorn, it think it would work very well (and be popular)

Also, thanks for putting my name in your program, i think that is one of the first programs with my name in it (other than my own)

  • 0
congrats on getting it working, it looks like a cool tile, and although you weren't going to do it on longhorn, it think it would work very well (and be popular)

Also, thanks for putting my name in your program, i think that is one of the first programs with my name in it (other than my own)

Hi The_Decryptor :laugh: :happy: I missed you :D As you can see I didn't get much help without you :laugh: But I managed to find out the solutions myself. So far I got around 500 downloads but I hopee that after releasing the 2nd version of it I'll get more.

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

    • No registered users viewing this page.
  • Posts

    • Anyway to download these versions without being on the Experimental builds?
    • Nothing is stopping you from continuing with your testing cadence. If updates are released every 2 weeks instead of 4, and you test once every 4 weeks, the exact same amount of patches will still be available for you in those 4 weeks. For example: Before 4th week - patch 1, 2, 3, 4 After 2nd week - patch 1 and 2 4th week - patch 3 and 4 Still the same amount after 4.
    • Everyone else has said it. I'm gonna say it - you don't know what you're talking about. I do. I have two laptops. One work, one personal. I have access to two more laptops - both personal. At home I manually update my personal laptop when I see on Neowin that there is an update - I carry on and only apply the updates when I am ready. My work one only updates when my workplace decides to send it - I carry on and only apply the updates (when they actually arrive, which is usually days after the release) when I switch off the laptop at the end of the day as usual. The two other personal laptops only get updated when I get to it which is rarely - the people who own them carry on using them until I get to it and update them. All of the browsers on all laptops are configured to restore the tabs when launched. Google and Microsoft have changed from 6 weeks to 4, and it looks like it's going to move to 2. None of these changes affect how any of these browsers on the laptops are used. Not one jot. My advice to you is stop panicking whenever you see an update. Just carry on with what you're doing. This even benefits you in a way - from your comment you sound like you don't like the changes or the frivolous new features - great - then carry on as before!
    • AMAZON needs to take total accountability for this.
    • Server Summit had a heap of announcements, ADCS changes are baller.
  • Recent Achievements

    • Week One Done
      Jeroen Wilms earned a badge
      Week One Done
    • Week One Done
      rolfus earned a badge
      Week One Done
    • One Month Later
      Leroy Jethro Gibbs earned a badge
      One Month Later
    • Conversation Starter
      flexorcist earned a badge
      Conversation Starter
    • One Month Later
      AndreaB earned a badge
      One Month Later
  • Popular Contributors

    1. 1
      +primortal
      509
    2. 2
      +Edouard
      198
    3. 3
      PsYcHoKiLLa
      138
    4. 4
      ATLien_0
      90
    5. 5
      Steven P.
      80
  • Tell a friend

    Love Neowin? Tell a friend!