NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    C# 윈도우즈 설정 정보를 가져오거나 변경하는 방법. (SystemParametersInfo)

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 윈도우즈 바탕화면 영역이나 아이콘의 크기, 언어 드라이버등등... 전반적인 윈도우즈 설정 내용을 가져올 수 있습니다. 물론, 추가할수도 있구요. 매크로 프로그램이 아니더라도 윈도우 프로그램을 개발할 때 유용하게 사용되는 것들이 많습니다. 윈도우즈 10에 새롭게 추가된 레이아웃 배율 때문에 마우스 좌표나 이미지 분석기에서 처리하지 못하는 경우도 발생합니다. 이런것들을 처리하기 위해서는 아래 함수를 사용해서 적절하게 구성해야 합니다.

    // C#
    [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
    public static extern int SystemParametersInfo(int uiAction, int uiParam, void* pvParam, int fWinIni);
    
    // C++
    BOOL SystemParametersInfoA(
      UINT  uiAction,
      UINT  uiParam,
      PVOID pvParam,
      UINT  fWinIni
    );

     

    윈도우즈의 설정값 대부분을 가져올 수 있지만, Windows95, Windows98, WindowsXP와 같은 레거시 시스템에만 지원하는것들도 많습니다. 요즘은 Windows7과 Windows10만 처리하면 될거 같은데요. 아래는 함수의 인자로 넘겨야 하는 값들을 정리한 내용입니다.

     

    윈도우즈 경고음 ON/OFF

    uiAction = 1

    uiParam = 0

    pvParam은 Long 타입으로 경고음이 꺼져 있으면 0입니다. 켜져 있으면 0이 아닌 값입니다.

     

    창 크기 조정 테두리의 너비

    uiAction = 5

    uiParam = 0

    pvParam은 현재 설정을 수신하는 Long 유형의 값입니다.

     

    Alt+Tab 전환 확인

    uiAction = 35

    uiParam = 0

    pvParam은 Long 타입으로 빠른 전환 작업이 꺼져 있으면 0입니다. 켜져 있으면 0이 아닌 값입니다.

     

    데스크톱 크기 조정 그리드 정보

    uiAction = 18

    uiParam = 0

    pvParam은 현재 설정의 Long 유형의 값입니다.

     

    아이콘 제목 글꼴 정보

    uiAction = 45

    uiParam = LOGFONT

    pvParam은 윈도우즈 아이콘 글꼴 LOGFONT을 반환합니다.

    Type LOGFONT
    	lfHeight As Long
    	lfWidth As Long
    	lfEscapement As Long
    	lfOrientation As Long
    	lfWeight As Long
    	lfItalic As Byte
    	lfUnderline As Byte
    	lfStrikeOut As Byte
    	lfCharSet As Byte
    	lfOutPrecision As Byte
    	lfClipPrecision As Byte
    	lfQuality As Byte
    	lfPitchAndFamily As Byte
    	lfFaceName As String * 32
    End Type

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.