8
Si spera che questo sia semplice, ma qualcuno può fornire qualche semplice codice C# che lancerà lo screensaver attualmente configurato?Launch System Screensaver da C# Windows Form
Si spera che questo sia semplice, ma qualcuno può fornire qualche semplice codice C# che lancerà lo screensaver attualmente configurato?Launch System Screensaver da C# Windows Form
Ecco un buon sito che mostra come lavorare con tutti gli aspetti dello screensaver. Vedere i commenti alla fine per il codice per avviare lo screensaver.
http://www.codeproject.com/KB/cs/ScreenSaverControl.aspx
[DllImport("user32.dll", EntryPoint = "GetDesktopWindow")]
private static extern IntPtr GetDesktopWindow();
[DllImport("user32.dll")]
private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);
//...
private const int SC_SCREENSAVE = 0xF140;
private const int WM_SYSCOMMAND = 0x0112;
//...
public static void SetScreenSaverRunning()
{
SendMessage
(GetDesktopWindow(), WM_SYSCOMMAND, SC_SCREENSAVE, 0);
}
La firma PInvoke non è corretto. Sia wParam che lParam devono essere digitati in IntPtr – JaredPar
Drats stavo scrivendo questo e quel codice sopra funziona. – cfeduke
Il codice funziona con ints nel SendMessage per w e l params, ma come scritto i const ints non funzioneranno con IntPtrs. – cfeduke