8
Espérons que ce soit un simple, mais quelqu'un peut-il fournir un code simple C# qui lancera l'économiseur d'écran actuellement configuré?Lancer l'économiseur d'écran du système à partir de Windows Form #
Espérons que ce soit un simple, mais quelqu'un peut-il fournir un code simple C# qui lancera l'économiseur d'écran actuellement configuré?Lancer l'économiseur d'écran du système à partir de Windows Form #
Voici un bon site montrant comment travailler avec tous les aspects de l'économiseur d'écran. Voir les commentaires à la fin pour le code pour démarrer l'économiseur d'écran.
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 signature PInvoke est incorrecte. Les deux wParam et lParam devraient être tapés à IntPtr – JaredPar
Drats que j'écrivais juste ceci, et que le code ci-dessus fonctionne. – cfeduke
Le code fonctionne avec ints dans les paramètres SendMessage pour w et l, mais comme indiqué, les const ints ne fonctionneront pas avec IntPtrs. – cfeduke