2008-11-06 17 views
8

से सिस्टम स्क्रीनसेवर लॉन्च करें उम्मीद है कि यह एक आसान है, लेकिन क्या कोई भी कुछ सरल सी # कोड प्रदान कर सकता है जो वर्तमान में कॉन्फ़िगर किया गया स्क्रीनसेवर लॉन्च करेगा?सी # विंडोज फॉर्म

उत्तर

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 हस्ताक्षर गलत है। डब्ल्यूपीएआरएम और एलपीराम दोनों को IntPtr – JaredPar

+0

ड्रैट्स पर टाइप किया जाना चाहिए, मैं सिर्फ यह लिख रहा था, और यह कोड ऊपर काम करता है। – cfeduke

+0

कोड डब्ल्यू और एल पैराम्स के लिए SendMessage में स्याही के साथ काम करता है, लेकिन जैसा लिखा है कि कॉन्स इनट इंटिप्टर के साथ काम नहीं करेंगे। – cfeduke

संबंधित मुद्दे