2008-11-06 6 views

Répondre

9

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); 
} 
+0

La signature PInvoke est incorrecte. Les deux wParam et lParam devraient être tapés à IntPtr – JaredPar

+0

Drats que j'écrivais juste ceci, et que le code ci-dessus fonctionne. – cfeduke

+0

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

Questions connexes