728x90
반응형
728x170
▶ WIN32Helper.cs
using System.Runtime.InteropServices;
namespace TestProject
{
/// <summary>
/// WIN32 헬퍼
/// </summary>
public static class WIN32Helper
{
//////////////////////////////////////////////////////////////////////////////////////////////////// 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")]
private static extern int SendMessage(int windowHandle, short message, int wordParameter, int longParameter);
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Field
////////////////////////////////////////////////////////////////////////////////////////// Private
#region Field
/// <summary>
/// HWND_BROADCAST
/// </summary>
private const int HWND_BROADCAST = 0xffff;
/// <summary>
/// SC_MONITORPOWER
/// </summary>
private const int SC_MONITORPOWER = 0xf170;
/// <summary>
/// WM_SYSCOMMAND
/// </summary>
private const short WM_SYSCOMMAND = 0x0112;
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Static
//////////////////////////////////////////////////////////////////////////////// Public
#region 모니터 전원 끄기 - MonitorPowerOff()
/// <summary>
/// 모니터 전원 끄기
/// </summary>
public static void MonitorPowerOff()
{
SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, -1);
}
#endregion
#region 모니터 전원 켜기 - MonitorPowerOn()
/// <summary>
/// 모니터 전원 켜기
/// </summary>
public static void MonitorPowerOn()
{
SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2);
}
#endregion
}
}
728x90
▶ Program.cs
using System;
using System.Threading;
namespace TestProject
{
/// <summary>
/// 프로그램
/// </summary>
class Program
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Static
//////////////////////////////////////////////////////////////////////////////// Private
#region 프로그램 시작하기 - Main()
/// <summary>
/// 프로그램 시작하기
/// </summary>
private static void Main()
{
Console.Title = "SendMessage API 함수 : 모니터 화면 끄기/켜기";
WIN32Helper.MonitorPowerOff();
Thread.Sleep(5000);
WIN32Helper.MonitorPowerOn();
}
#endregion
}
}
728x90
반응형
그리드형(광고전용)
'C# > Common' 카테고리의 다른 글
[C#/COMMON] 바이트 길이 문자열 구하기 (0) | 2014.12.02 |
---|---|
[C#/COMMON] 바이트 길이 구하기 (0) | 2014.12.02 |
[C#/COMMON] 인코딩 타입 관리자 (0) | 2014.12.02 |
[C#/COMMON] Environment 클래스 : CurrentDirectory 정적 속성을 사용해 애플리케이션 실행 경로 구하기 (0) | 2014.12.02 |
[C#/COMMON] 최근 문서 추가하기 (0) | 2014.12.02 |
[C#/COMMON] SystemSounds 클래스 : 시스템 소리 내기 (0) | 2014.12.02 |
[C#/COMMON] OleDbDataAdapter 클래스 : 스키마만 갖는 DataSet 구하기 (0) | 2014.12.02 |
[C#/COMMON] List<T> 클래스 : RemoveAll 메소드 사용하기 (0) | 2014.12.02 |
[C#/COMMON] List<T> 클래스 : ConvertAll 메소드 사용하기 (0) | 2014.12.02 |
[C#/COMMON] List<T> 클래스 : Aggregate 메소드 사용하기 (0) | 2014.12.02 |
댓글을 달아 주세요