8
Esperemos que esta sea una simple, pero ¿alguien puede proporcionar un código C# simple que iniciará el protector de pantalla configurado actualmente?Launch System Screensaver de C# Windows Form
Esperemos que esta sea una simple, pero ¿alguien puede proporcionar un código C# simple que iniciará el protector de pantalla configurado actualmente?Launch System Screensaver de C# Windows Form
Aquí hay un buen sitio que muestra cómo trabajar con todos los aspectos del protector de pantalla. Vea los comentarios al final del código para iniciar el protector de pantalla.
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 es incorrecto. Tanto wParam como lParam deben escribirse en IntPtr – JaredPar
Drats. Estaba escribiendo esto y el código anterior funciona. – cfeduke
El código funciona con entradas en SendMessage para w yl params, pero como está escrito, las funciones no funcionarán con IntPtrs. – cfeduke