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
개발자에게 후원하기
추천, 구독, 홍보 꼭~ 부탁드립니다.
여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~
감사합니다~
- 이전글키보드 반복 속도를 알아내거나 설정하는 방법. 21.05.29
- 다음글파일 경로 또는 파일명에 윈도우즈에서 사용할 수 없는 문자가 포함되어 있는지 체크하는 방법. 21.05.27
댓글목록
등록된 댓글이 없습니다.