괴짜 프로그래머의 일상사~@@
프로그래밍, 컴퓨터, 그리고 일상에 관한 소소한 이야기들...
Blog | Guestbook
Keyword | Local | Tag
T 137 / Y 700 / Total 3405195
Catergories
Calendar
«   2007/08   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
Tag
비트필드, S2110, Listen, 리슨, php, 최단 경로, 세벌식, 버그, 알고리즘, 휴대폰, , OutputDebugString, ROOTKITS, 고전, 처음처럼, , 심리, Min, shift, 디바이스 드라이버,
Archive
Link
Search
  submit
Recent Articles
Recent Comments
Recent Trackbacks
해당되는 게시물 2건
2007/08/29 21:50
아인슈타인의 성공 방정식
[GGG]
오래전 메일함을 뒤적이다가 누군가한테 보낸 메일 중에 재미난 내용이 있어서 소개해 봅니다. 저도 다른 분께 메일로 받은 내용 중 일부를 발췌해서 보낸 건데, 제목은 제가 임의로 붙인 겁니다. 그때도 덧으로 많은 생각이 들게 하는 글이라고 적었는데 지금 봐도 많은 생각을 하게 하는 글이네요.
제자들이 아인슈타인에게 선생님은 어떻게 학문에 성공하셨는지 그 비결을 물었답니다.
그러자 아인슈타인 박사가 s=x+y+z 라고 쓰시더랍니다.

s는 물론 성공(success)의 머릿글자지요.

x는 말을 많이 하지 말 것,
y는 생활을 즐길 것,
z는 한가한 시간을 가지라는 뜻이라고

박사님은 설명을 해주시더랍니다.

성공의 비결,쉽지요.
말을 많이 하지 않고, 생활을 즐기고, 한가한 시간을 가질 것.

- 2000년 12월의 어느 메일 함에서
세 가지 항목을 따로 때놓고 보면 성공이랑 그닥 관련 없는 팩터들 같아 보이지 않습니까?
그런데 또 붙여놓고 생각해보면 성공의 요소인 것도 같아보이네요.
오묘합니다. ㅎㅎ

성공 방정식의 세 가지 항목 중에서 한 가지도 못지키는 요즘인 것 같습니다.
좀 여유를 가지도록 노력해야 겠습니다.

그나저나 메일함을 보니 참 유치한 메일들이 많네요. 철없던 시절 철없이 휘갈겨 쓴 말도 안되는 메일들. 보면서 웃기도 하고, 그때가 그립기도 하고 그렇네요. 언젠가 먼 훗날엔 지금 쓴 글들을 보면서 그런 생각을 하고 있겠죠? ㅋㅋ 그때의 순수를 잃은 것 같아 조금은 아쉽습니다. 나이가 든다는 건 점점 순수를 잃어가는거라고 말했던 어느 작가분이 생각납니다. 진짜 가을이 오려나???? ㅋㅋㅋ



2007/08/29 18:46
운영체제 버전 구하기
[GGG]
정확한 OS 종류를 판단하는 것은 무척 중요한 일 입니다. 이 문서에 포함된 함수들은 VerifyVersion과 GetVersionEx함수를 사용하여 정확한 OS 종류를 판단합니다. 제공되는 함수는 아래와 같습니다. 각각의 함수가 판별하는 OS는 주석을 참고 하십시요.
[CPP]BOOL WINAPI IsWin95()          // 윈도우 95
BOOL WINAPI IsWin95OSR2() // 윈도우 95 OSR2
BOOL WINAPI IsWin98() // 윈도우 98
BOOL WINAPI IsWin98SE() // 윈도우 98 SE
BOOL WINAPI IsWinME() // 윈도우 ME
BOOL WINAPI IsWin9X() // 모든 윈도우 9x 시스템
BOOL WINAPI IsWinNT4() // 윈도우 NT4
BOOL WINAPI IsWin2K() // 윈도우 2000
BOOL WINAPI IsWinXP() // 윈도우 XP
BOOL WINAPI IsWinNET() // 윈도우 .Net
BOOL WINAPI IsWinNT() // 모든 윈도우 NT계열 시스템[/CPP]
[CPP]#ifndef GETPROC
#define GETPROC(dll, type, name) (type)GetProcAddress(dll, name)
#endif

typedef BOOL
(WINAPI *fnVerifyVersionInfo)(LPOSVERSIONINFOEX, DWORD, DWORDLONG);

typedef ULONGLONG
(WINAPI *fnVerSetConditionMask)(ULONGLONG, DWORD, BYTE);

BOOL _VerifyVersionInfo(LPOSVERSIONINFOEX lpVersionInfo
                        , DWORD dwTypeMask
                        , DWORDLONG dwConditionMask
                        , BOOL *bVerified)
{
    BOOL bRet = FALSE;
    HINSTANCE hDll = NULL;
    fnVerifyVersionInfo FVerifyVersionInfo;
    fnVerSetConditionMask FVerSetConditionMask;

    hDll = LoadLibrary("kernel32.dll");
    if(hDll != NULL)
    {
        FVerifyVersionInfo = GETPROC(hDll
                                    , fnVerifyVersionInfo
                                    , "VerifyVersionInfoA");

        FVerSetConditionMask = GETPROC(hDll
                                    , fnVerSetConditionMask
                                    , "VerSetConditionMask");

        if(FVerifyVersionInfo != NULL && FVerSetConditionMask != NULL)
        {
            dwConditionMask = 0;
            if(dwTypeMask & VER_MAJORVERSION)
                dwConditionMask = FVerSetConditionMask(dwConditionMask
                                                    , VER_MAJORVERSION
                                                    , VER_EQUAL);

            if(dwTypeMask & VER_MINORVERSION)
                dwConditionMask = FVerSetConditionMask(dwConditionMask
                                                    , VER_MINORVERSION
                                                    , VER_EQUAL);

            if(dwTypeMask & VER_PLATFORMID)
                dwConditionMask = FVerSetConditionMask(dwConditionMask
                                                    , VER_PLATFORMID
                                                    , VER_EQUAL);

            if(dwTypeMask & VER_PRODUCT_TYPE)
                dwConditionMask = FVerSetConditionMask(dwConditionMask
                                                        , VER_PRODUCT_TYPE
                                                        , VER_EQUAL);


            *bVerified = FVerifyVersionInfo(lpVersionInfo
                                            , dwTypeMask
                                            , dwConditionMask);
            bRet = TRUE;
        }
        FreeLibrary(hDll);
    }

    return bRet;
}

BOOL WINAPI IsWin95()
{
    OSVERSIONINFOEX osi;
    DWORDLONG dwlConditionMask = 0;
    BOOL bRet = FALSE;
    BOOL bVerified = FALSE;

    ZeroMemory(&osi, sizeof(OSVERSIONINFOEX));
    osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
    osi.dwMajorVersion = 4;
    osi.dwMinorVersion = 0;
    osi.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS;

    bRet = _VerifyVersionInfo(&osi
                        , VER_MAJORVERSION | VER_MINORVERSION | VER_PLATFORMID
                        , dwlConditionMask
                        , &bVerified);
    if(bRet == TRUE)
        return bVerified;

    osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);

    if(GetVersionEx((OSVERSIONINFO *) &osi) == 0)
    {
        osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
        if(GetVersionEx((OSVERSIONINFO *) &osi) == 0)
            return 0;
    }

    return (osi.dwMajorVersion == 4)
            && (osi.dwMinorVersion == 0)
            && (osi.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
            && (osi.szCSDVersion[1] != 'C');
}

BOOL WINAPI IsWin95OSR2()
{
    OSVERSIONINFOEX osi;
    DWORDLONG dwlConditionMask = 0;
    BOOL bRet = FALSE;
    BOOL bVerified = FALSE;

    ZeroMemory(&osi, sizeof(OSVERSIONINFOEX));
    osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
    osi.dwMajorVersion = 4;
    osi.dwMinorVersion = 0;
    osi.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS;

    bRet = _VerifyVersionInfo(&osi
                                , VER_MAJORVERSION | VER_MINORVERSION | VER_PLATFORMID
                                , dwlConditionMask
                                , &bVerified);
    if(bRet == TRUE)
        return bVerified;

    osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
    if(GetVersionEx((OSVERSIONINFO *) &osi) == 0)
    {
        osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
        if(GetVersionEx((OSVERSIONINFO *) &osi) == 0)
            return 0;
    }       
    
    return (osi.dwMajorVersion == 4)
            && (osi.dwMinorVersion == 0)
            && (osi.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
            && (osi.szCSDVersion[1] == 'C');
}

BOOL WINAPI IsWin98()
{
    OSVERSIONINFOEX osi;
    DWORDLONG dwlConditionMask = 0;
    BOOL bRet = FALSE;
    BOOL bVerified = FALSE;

    ZeroMemory(&osi, sizeof(OSVERSIONINFOEX));
    osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
    osi.dwMajorVersion = 4;
    osi.dwMinorVersion = 10;
    osi.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS;

    bRet = _VerifyVersionInfo(&osi
                            , VER_MAJORVERSION | VER_MINORVERSION | VER_PLATFORMID
                            , dwlConditionMask
                            , &bVerified);
    if(bRet == TRUE)
        return bVerified;

    osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
    if(GetVersionEx((OSVERSIONINFO *) &osi) == 0)
    {
        osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
        if(GetVersionEx((OSVERSIONINFO *) &osi) == 0)
            return 0;
    }       
    
    return (osi.dwMajorVersion == 4)
            && (osi.dwMinorVersion == 10)
            && (osi.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
            && (osi.szCSDVersion[1] != 'A');
}

BOOL WINAPI IsWin98SE()
{
    OSVERSIONINFOEX osi;
    DWORDLONG dwlConditionMask = 0;
    BOOL bRet = FALSE;
    BOOL bVerified = FALSE;

    ZeroMemory(&osi, sizeof(OSVERSIONINFOEX));
    osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
    osi.dwMajorVersion = 4;
    osi.dwMinorVersion = 10;
    osi.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS;

    bRet = _VerifyVersionInfo(&osi
                            , VER_MAJORVERSION | VER_MINORVERSION | VER_PLATFORMID
                            , dwlConditionMask
                            , &bVerified);
    if(bRet == TRUE)
        return bVerified;

    osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
    if(GetVersionEx((OSVERSIONINFO *) &osi) == 0)
    {
        osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
        if(GetVersionEx((OSVERSIONINFO *) &osi) == 0)
            return 0;
    }       
    
    return (osi.dwMajorVersion == 4)
            && (osi.dwMinorVersion == 10)
            && (osi.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
            && (osi.szCSDVersion[1] == 'A');
}

BOOL WINAPI IsWinME()
{
    OSVERSIONINFOEX osi;
    DWORDLONG dwlConditionMask = 0;
    BOOL bRet = FALSE;
    BOOL bVerified = FALSE;

    ZeroMemory(&osi, sizeof(OSVERSIONINFOEX));
    osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
    osi.dwMajorVersion = 4;
    osi.dwMinorVersion = 90;
    osi.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS;

    bRet = _VerifyVersionInfo(&osi
                            , VER_MAJORVERSION | VER_MINORVERSION | VER_PLATFORMID
                            , dwlConditionMask
                            , &bVerified);
    if(bRet == TRUE)
        return bVerified;

    osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
    if(GetVersionEx((OSVERSIONINFO *) &osi) == 0)
    {
        osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
        if(GetVersionEx((OSVERSIONINFO *) &osi) == 0)
            return 0;
    }       

    return (osi.dwMajorVersion == 4)
            && (osi.dwMinorVersion == 90)
            && (osi.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS);
}

BOOL WINAPI IsWin9X()
{
    OSVERSIONINFOEX osi;
    DWORDLONG dwlConditionMask = 0;
    BOOL bRet = FALSE;
    BOOL bVerified = FALSE;

    ZeroMemory(&osi, sizeof(OSVERSIONINFOEX));
    osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
    osi.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS;

    bRet = _VerifyVersionInfo(&osi, VER_PLATFORMID, dwlConditionMask, &bVerified);
    if(bRet == TRUE)
        return bVerified;

    osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
    if(GetVersionEx((OSVERSIONINFO *) &osi) == 0)
    {
        osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
        if(GetVersionEx((OSVERSIONINFO *) &osi) == 0)
            return 0;
    }       

    return osi.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS;
}

BOOL WINAPI IsWinNT4()
{
    OSVERSIONINFOEX osi;
    DWORDLONG dwlConditionMask = 0;
    BOOL bRet = FALSE;
    BOOL bVerified = FALSE;

    ZeroMemory(&osi, sizeof(OSVERSIONINFOEX));
    osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
    osi.dwMajorVersion = 4;
    osi.dwMinorVersion = 0;
    osi.dwPlatformId = VER_PLATFORM_WIN32_NT;

    bRet = _VerifyVersionInfo(&osi
                        , VER_MAJORVERSION | VER_MINORVERSION | VER_PLATFORMID
                        , dwlConditionMask
                        , &bVerified);
    if(bRet == TRUE)
        return bVerified;

    osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
    if(GetVersionEx((OSVERSIONINFO *) &osi) == 0)
    {
        osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
        if(GetVersionEx((OSVERSIONINFO *) &osi) == 0)
            return 0;
    }       
    
    return (osi.dwMajorVersion == 4)
            && (osi.dwMinorVersion == 0)
            && (osi.dwPlatformId == VER_PLATFORM_WIN32_NT);
}

BOOL WINAPI IsWin2K()
{
    OSVERSIONINFOEX osi;
    DWORDLONG dwlConditionMask = 0;
    BOOL bRet = FALSE;
    BOOL bVerified = FALSE;

    ZeroMemory(&osi, sizeof(OSVERSIONINFOEX));
    osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
    osi.dwMajorVersion = 5;
    osi.dwMinorVersion = 0;
    osi.dwPlatformId = VER_PLATFORM_WIN32_NT;

    bRet = _VerifyVersionInfo(&osi
                        , VER_MAJORVERSION | VER_MINORVERSION | VER_PLATFORMID
                        , dwlConditionMask
                        , &bVerified);
    if(bRet == TRUE)
        return bVerified;

    osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
    if(GetVersionEx((OSVERSIONINFO *) &osi) == 0)
    {
        osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
        if(GetVersionEx((OSVERSIONINFO *) &osi) == 0)
            return 0;
    }       
    
    return (osi.dwMajorVersion == 5)
            && (osi.dwMinorVersion == 0)
            && (osi.dwPlatformId == VER_PLATFORM_WIN32_NT);
}

BOOL WINAPI IsWinXP()
{
    OSVERSIONINFOEX osi;
    DWORDLONG dwlConditionMask = 0;
    BOOL bRet = FALSE;
    BOOL bVerified = FALSE;

    ZeroMemory(&osi, sizeof(OSVERSIONINFOEX));
    osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
    osi.dwMajorVersion = 5;
    osi.dwMinorVersion = 1;
    osi.dwPlatformId = VER_PLATFORM_WIN32_NT;

    bRet = _VerifyVersionInfo(&osi
                        , VER_MAJORVERSION | VER_MINORVERSION | VER_PLATFORMID
                        , dwlConditionMask
                        , &bVerified);
    if(bRet == TRUE)
        return bVerified;

    osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
    if(GetVersionEx((OSVERSIONINFO *) &osi) == 0)
    {
        osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
        if(GetVersionEx((OSVERSIONINFO *) &osi) == 0)
            return 0;
    }       
    
    return  (osi.dwMajorVersion == 5)
            && (osi.dwMinorVersion == 1)
            && (osi.dwPlatformId == VER_PLATFORM_WIN32_NT)
            && (osi.wProductType == VER_NT_WORKSTATION);
}

BOOL WINAPI IsWinNET()
{
    OSVERSIONINFOEX osi;
    DWORDLONG dwlConditionMask = 0;
    BOOL bRet = FALSE;
    BOOL bVerified = FALSE;

    ZeroMemory(&osi, sizeof(OSVERSIONINFOEX));
    osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
    osi.dwMajorVersion = 5;
    osi.dwMinorVersion = 1;
    osi.wProductType = VER_NT_WORKSTATION;
    osi.dwPlatformId = VER_PLATFORM_WIN32_NT;

    DWORD type = VER_MAJORVERSION
                | VER_MINORVERSION
                | VER_PRODUCT_TYPE
                | VER_PLATFORMID;

    bRet = _VerifyVersionInfo(&osi, type, dwlConditionMask, &bVerified);
    if(bRet == TRUE)
        return bVerified;

    osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
    if(GetVersionEx((OSVERSIONINFO *) &osi) == 0)
    {
        osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
        if(GetVersionEx((OSVERSIONINFO *) &osi) == 0)
            return 0;
    }       
    
    return (osi.dwMajorVersion == 5)
            && (osi.dwMinorVersion == 1)
            && (osi.dwPlatformId == VER_PLATFORM_WIN32_NT)
            && (osi.wProductType != VER_NT_WORKSTATION);
}

BOOL WINAPI IsWinNT()
{
    OSVERSIONINFOEX osi;
    DWORDLONG dwlConditionMask = 0;
    BOOL bRet = FALSE;
    BOOL bVerified = FALSE;

    ZeroMemory(&osi, sizeof(OSVERSIONINFOEX));
    osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
    osi.dwPlatformId = VER_PLATFORM_WIN32_NT;

    bRet = _VerifyVersionInfo(&osi
                            , VER_PLATFORMID
                            , dwlConditionMask
                            , &bVerified);
    if(bRet == TRUE)
        return bVerified;

    osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
    if(GetVersionEx((OSVERSIONINFO *) &osi) == 0)
    {
        osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
        if(GetVersionEx((OSVERSIONINFO *) &osi) == 0)
            return 0;
    }       

    return osi.dwPlatformId == VER_PLATFORM_WIN32_NT;
}[/CPP]
 Prev   1   Next 
codewiz’s Blog is powered by Tattertools.com / Designed by faido