[C++ 언어-기초실습-24] GetSystemMetrics()함수로 윈도우 정보 얻기

in #kr-dev5 years ago (edited)

[C++ 언어-기초실습-24] GetSystemMetrics()함수로 윈도우 정보 얻기



윈도우 정보를 콘솔창에서 얻는 방법을 실습해보도록 하겠습니다.

1. GetSystemMetrics()함수


출처 : http://soen.kr/lecture/win32api/reference/Function/GetSystemMetrics.htm


구글검색을 통해 보기 편하게 정리 해놓은 곳이 있어서 링크를 걸어 놓습니다. GetSystemMetrics()함수를 이용하여 다양한 윈도우 정보를 얻을 수 있습니다. 이 함수 안에 여러개의 인자들이 있는데 여기서 다 나열하지나 너무 길어서 래퍼런스를 제가 찾은 곳에서 보시던지 따로 전문 레퍼런스를 찾으셔서 보시든지 하셔서 어떤 인자들이 있는지 한번 알아 보시기 바랍니다. 대부분 스크린 관련 정보를 얻을 수 있는데 실습도 간단히 스크린 정보와 몇가지 시스템 정보를 얻는 실습을 해보는록 하겠습니다.

우선 기본적으로 이 함수를 사용하기 위해서는 아래와 같은 형식을 취해주시면 됩니다.

#include <Windows.h>

int main(){
    int 변수명 = GetSystemMetrics(추출인자명); //예) 가로해상도 GetSystemMetrics(SM_CXSCREEN);
}

이렇게 정보를 읽어 올 수 있습니다. 여러분들이 실습을 할 때에는 래퍼런스를 읽어 보시고 원하는 값을 읽어 와서 콘솔창에서 출력 해보시면 되겠죠.

2. 코딩


[전체소스]

#include <iostream>
#include <Windows.h>

using namespace std;

int main(int argc, char** argv) {
    
    int cx_Screen = GetSystemMetrics(SM_CXSCREEN);
    int cy_Screen = GetSystemMetrics(SM_CYSCREEN);
    int cy_Menu = GetSystemMetrics(SM_CYMENU);
    int pen_Windows = GetSystemMetrics(SM_PENWINDOWS);
    int mouse_Present = GetSystemMetrics(SM_MOUSEPRESENT);
    
    cout<<"가로 해상도 : "<<cx_Screen<<endl;
    cout<<"세로 해상도 : "<<cy_Screen<<endl;
    cout<<"메뉴바 높이 : "<<cy_Menu<<endl;
    cout<<"팬 컴퓨터 연결 상태 : "<<pen_Windows<<endl;
    cout<<"마우스 연결 상태 : "<<mouse_Present<<endl;
    
    return 0;
}

[결과]
a1.jpg

마무리


이 함수 외에서 Win32 래퍼런스에 가시면 다양한 함수들이 있습니다. 한번 각 함수들을 읽어보시기 바랍니다. 이 함수들을 잘 활용하시면 다양한 재밌는 프로그램을 많이 만들 수 있을 거에요. 직접 win정보를 얻고 컨트롤 할 수 있기 때문에 꽤 재밌는 공부가 되실 거라 생각 됩니다.


Sponsored ( Powered by dclick )

dclick-imagead

Sort:  

Thank you for your continued support towards JJM. For each 1000 JJM you are holding, you can get an additional 1% of upvote. 10,000JJM would give you a 11% daily voting from the 700K SP virus707 account.

프로그래밍인가요?? @_@

Posted using Partiko iOS

GetSystemMetrics 함수는 윈도우 프로그래밍 했을 때 써본 적이 있었던 걸로 기억이 나네요.
윈도우 모바일 프로그래밍을 하던 때가 잠시 있었지요.


@sct1004님의 오늘의 미션이 있으며,
미션 완수하면 SCT 풀 보팅을 받으실 수 있습니다.
자세한 내용은 아래 링크 참고하세요.
https://steemit.com/@sct1004/sct-8-15

Congratulations @codingman! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You distributed more than 8000 upvotes. Your next target is to reach 9000 upvotes.

You can view your badges on your Steem Board and compare to others on the Steem Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Vote for @Steemitboard as a witness to get one more award and increased upvotes!