운영체제 버전 구하기 :: 2007/08/29 18:46



정확한 OS 종류를 판단하는 것은 무척 중요한 일 입니다. 이 문서에 포함된 함수들은 VerifyVersion과 GetVersionEx함수를 사용하여 정확한 OS 종류를 판단합니다. 제공되는 함수는 아래와 같습니다. 각각의 함수가 판별하는 OS는 주석을 참고 하십시요.
스폰서
글타래

  • 2주간 인기 글
  • 2주간 인기글이 없습니다.
Trackback Address :: http://jiniya.net/tt/trackback/580
  • Gravatar Image.
    chaoskcuf | 2007/08/29 18:56 | PERMALINK | EDIT/DEL | REPLY

    C#에서는

    OperatingSystem os = Environment.OSVersion;
    if (os.Version.Major >= 6)
    ; // Vista

    이거면 끝나는데.. 좀 길어보이네요. ^^;

    • Gravatar Image.
      codewiz | 2007/08/29 20:37 | PERMALINK | EDIT/DEL

      C++에서도 GetVersion 하나면 버전을 구해올 수 있습니다.
      단지 XP부터 생긴 호환성 모드에 상관없이 정확하게 구하려다보니 코드가 길어진거죠. ㅠㅠ 호환성모드는 아래 페이지를 참고하세요.

      http://www.jiniya.net/tt/25

      그리고 좀 더 고급언어로 갈 수록 코드 줄수가 짧아지는 것은 당연한 결과입니다. 길어진다면 사람들이 쓸 이유가 없겠죠. 파이썬의 한 줄이 C/C++의 수십, 수백 줄이 되는 경우는 흔하죠. 단지 프로그래머는 그 작업을 하지 않았지만 하부에서는 똑같은 일들이 벌어지고 있죠. 누가 하느냐의 차이죠. 위의 저걸 라이브러리로 만들고 IsWinNT() 하나만 호출하면 끝난다라고 하는 것과 차이가 없다는 이야기 입니다.

  • Gravatar Image.
    drvoss | 2007/08/30 01:40 | PERMALINK | EDIT/DEL | REPLY

    커널에 모듈을 심어 놓고 유저모드와 프로세스 통신 하는 프로그램이 있다면, 호환성 모드는 경우에 따라서 오동작의 원인이 될 수도 있겠네요. 사용자들은 자신이 호환성 모드를 켜 놓았는지 잘 모르는 경우가 있더라구요. 그럴때 생기는 버그라면 버그 리포팅이 들어오더라도, 상황에 대한 추측을 오해해서 버그 수정이 어려울 수도 있을것 같습니다. 단순히 GetVersion으로 비교만 하고 그밖의 상황은 무시했던 버전 체크를 다시한번 돌아 보게 만드는 좋은글이였습니다. 영진님은 이런 내용이 막 머리에서 샘솟나봐요. 부럽습니다.~

    그건 그렇고 호환성모드관련 글에 답글 BB를 보고 까무러 칠뻔했습니다. ㅎㅎㅎ

    • Gravatar Image.
      codewiz | 2007/08/30 10:16 | PERMALINK | EDIT/DEL

      네 맞습니다.
      일전에 게임에 적용되는 모듈을 개발한적이 있는데, XP시스템인데 자꾸 VxD를 로딩하더군요. 알아보니 그 게임의 경우 XP 시스템에서 98 호환성모드로 동작하기를 권고하고 있더군요. 결국은 호환성 모드를 끄는 쪽으로 해결했지만 호환성 모드가 쉽게 생각하는 것 만큼 간단한게 아니더군요. 버전 외에도 바뀌는게 많은 것 같았습니다. 성환호위하 티가 괜히 있는게 아닌것 같더군요 ㅎㅎㅎ

      그리고 이 글은 예전에 고수닷넷에 포스팅한 글인데 방명록에 어느 분이 질문하셔서 다시 퍼온 것 입니다. 고수닷넷에 올려진 글이 인덴트가 심하게 깨져서 알아보기가 힘들더라고요. *^^*

  • Gravatar Image.
    이광진 | 2007/08/31 00:00 | PERMALINK | EDIT/DEL | REPLY

    예전에 저는 각 OS에 대해서 int 형의 값을 define 해 두고 함수 하나 만들어서 각 상황에 맞게 미리 define 된 값을 반환시키도록 해서 구현을 했었는데...

    • Gravatar Image.
      codewiz | 2007/08/31 12:28 | PERMALINK | EDIT/DEL

      광진님 안녕하세요. ^^ 잘지내시죵??
      방법을 조금 더 자세히 소개해 주실 수 있을까요?
      잘 이해가 안되서요. ㅎㅎ

Name
Password
Homepage
Secret