2008-11-06 6 views

ответ

9

Вот хороший сайт, показывающий, как работать со всеми аспектами заставки. См. Комментарии в конце кода для запуска заставки.

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

PInvoke подпись неверна. Оба wParam и lParam должны быть введены в IntPtr – JaredPar

+0

Drats Я просто писал это, и этот код выше работает. – cfeduke

+0

Код работает с ints в SendMessage для w и l params, но поскольку его запись const ints не будет работать с IntPtrs. – cfeduke

 Смежные вопросы

  • Нет связанных вопросов^_^