728x90
반응형
728x170
▶ ScreenSaverHelper.cs
using System;
using System.Runtime.InteropServices;
namespace TestProject
{
/// <summary>
/// 화면 보호기 헬퍼
/// </summary>
public static class ScreenSaverHelper
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Import
////////////////////////////////////////////////////////////////////////////////////////// Static
//////////////////////////////////////////////////////////////////////////////// Private
#region 메시지 보내기 - SendMessage(windowHandle, message, wordParameter, longParameter)
/// <summary>
/// 메시지 보내기
/// </summary>
/// <param name="windowHandle">윈도우 핸들</param>
/// <param name="message">메시지</param>
/// <param name="wordParameter">WORD 매개 변수</param>
/// <param name="longParameter">LONG 매개 변수</param>
/// <returns>처리 결과</returns>
[DllImport("User32.dll")]
private static extern int SendMessage(IntPtr windowHandle, uint message, uint wordParameter, uint longParameter);
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Field
////////////////////////////////////////////////////////////////////////////////////////// Private
#region Field
/// <summary>
/// WM_SYSCOMMAND
/// </summary>
private const uint WM_SYSCOMMAND = 0x112;
/// <summary>
/// SC_SCREENSAVE
/// </summary>
private const uint SC_SCREENSAVE = 0xf140;
/// <summary>
/// HWND_DESKTOP
/// </summary>
private const uint HWND_DESKTOP = 0x0;
/// <summary>
/// HWND_BROADCAST
/// </summary>
private const uint HWND_BROADCAST = 0xffff;
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Static
//////////////////////////////////////////////////////////////////////////////// Public
#region 화면 보호기 표시하기 - ShowScreenSaver()
/// <summary>
/// 화면 보호기 표시하기
/// </summary>
public static void ShowScreenSaver()
{
SendMessage
(
new IntPtr((int)HWND_BROADCAST),
WM_SYSCOMMAND,
SC_SCREENSAVE,
0
);
}
#endregion
}
}
728x90
▶ Program.cs
using System;
namespace TestProject
{
/// <summary>
/// 프로그램
/// </summary>
class Program
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Static
//////////////////////////////////////////////////////////////////////////////// Private
#region 프로그램 시작하기 - Main()
/// <summary>
/// 프로그램 시작하기
/// </summary>
private static void Main()
{
Console.WriteLine("아무 키나 누르면 화면 보호기를 표시합니다.");
Console.ReadKey(false);
ScreenSaverHelper.ShowScreenSaver();
}
#endregion
}
}
※ 화면 보호기가 설정되어 있지 않으면 화면 보호기가 표시되지 않는다.
728x90
반응형
그리드형(광고전용)
'C# > Common' 카테고리의 다른 글
[C#/COMMON] 누겟 설치 : Otp.NET (0) | 2021.04.26 |
---|---|
[C#/COMMON] 작업 보기(Task View) 모드 토글하기 (0) | 2021.04.22 |
[C#/COMMON] Process 클래스 : StandardOutput 속성을 사용해 PING 실행 결과 출력하기 (0) | 2021.04.16 |
[C#/COMMON] ManagementObject 클래스 : 윈도우즈 서비스 파일 경로 구하기 (0) | 2021.04.15 |
[C#/COMMON] 최소화된 UWP 앱을 일반 상태로 표시하기 (0) | 2021.04.15 |
[C#/COMMON] Process 클래스 : 윈도우 핸들을 갖고 프로세스 파일 경로 구하기 (0) | 2021.04.14 |
[C#/COMMON] Process 클래스 : 관리자 권한 실행 여부 구하기 (0) | 2021.04.14 |
[C#/COMMON] WebClient 클래스 : 넥서스 저장소(Nexus Repository)에서 자산(Asset) 정보 구하기 (0) | 2021.04.10 |
[C#/COMMON] Mutex 클래스 : 전역 객체 사용하기 (0) | 2021.04.10 |
[C#/COMMON] ManagementObjectSearcher 클래스 : 프로세스 정보 구하기 (0) | 2021.04.10 |
댓글을 달아 주세요