• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            得到系統版本-操作注冊表

            #include <windows.h>
            #include <stdio.h>
            #define BUFSIZE 80
            int main()
            {
            OSVERSIONINFOEX osvi;
            BOOL bOsVersionInfoEx;
            // Try calling GetVersionEx using the OSVERSIONINFOEX structure.
            // If that fails, try using the OSVERSIONINFO structure.
            ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));
            osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
            if( !(bOsVersionInfoEx = GetVersionEx ((OSVERSIONINFO *) &osvi)) )
            {
            osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFO);
            if (! GetVersionEx ( (OSVERSIONINFO *) &osvi) )
            return FALSE;
            }
            switch (osvi.dwPlatformId)
            {
            // Test for the Windows NT product family.
            case VER_PLATFORM_WIN32_NT:
            // Test for the specific product.
            if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 2 )
            printf ("Microsoft Windows Server 2003, ");
            if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1 )
            printf ("Microsoft Windows XP ");
            if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 0 )
            printf ("Microsoft Windows 2000 ");
            if ( osvi.dwMajorVersion <= 4 )
            printf("Microsoft Windows NT ");
            // Test for specific product on Windows NT 4.0 SP6 and later.
            if( bOsVersionInfoEx )
            {
            // Test for the workstation type.
            if ( osvi.wProductType == VER_NT_WORKSTATION )
            {
            if( osvi.dwMajorVersion == 4 )
            printf ( "Workstation 4.0 " );
            else if( osvi.wSuiteMask & VER_SUITE_PERSONAL )
            printf ( "Home Edition " );
            else printf ( "Professional " );
            }
            // Test for the server type.
            else if ( osvi.wProductType == VER_NT_SERVER ||
            osvi.wProductType == VER_NT_DOMAIN_CONTROLLER )
            {
            if(osvi.dwMajorVersion==5 && osvi.dwMinorVersion==2)
            {
            if( osvi.wSuiteMask & VER_SUITE_DATACENTER )
            printf ( "Datacenter Edition " );
            else if( osvi.wSuiteMask & VER_SUITE_ENTERPRISE )
            printf ( "Enterprise Edition " );
            else if ( osvi.wSuiteMask == VER_SUITE_BLADE )
            printf ( "Web Edition " );
            else printf ( "Standard Edition " );
            }
            else if(osvi.dwMajorVersion==5 && osvi.dwMinorVersion==0)
            {
            if( osvi.wSuiteMask & VER_SUITE_DATACENTER )
            printf ( "Datacenter Server " );
            else if( osvi.wSuiteMask & VER_SUITE_ENTERPRISE )
            printf ( "Advanced Server " );
            else printf ( "Server " );
            }
            else  // Windows NT 4.0
            {
            if( osvi.wSuiteMask & VER_SUITE_ENTERPRISE )
            printf ("Server 4.0, Enterprise Edition " );
            else printf ( "Server 4.0 " );
            }
            }
            }
            // Test for specific product on Windows NT 4.0 SP5 and earlier
            else
            {
            HKEY hKey;
            char szProductType[BUFSIZE];
            DWORD dwBufLen=BUFSIZE;
            LONG lRet;
            lRet = RegOpenKeyEx( HKEY_LOCAL_MACHINE,
            "SYSTEM\\CurrentControlSet\\Control\\ProductOptions",
            0, KEY_QUERY_VALUE, &hKey );
            if( lRet != ERROR_SUCCESS )
            return FALSE;
            lRet = RegQueryValueEx( hKey, "ProductType", NULL, NULL,
            (LPBYTE) szProductType, &dwBufLen);
            if( (lRet != ERROR_SUCCESS) || (dwBufLen > BUFSIZE) )
            return FALSE;
            RegCloseKey( hKey );
            if ( lstrcmpi( "WINNT", szProductType) == 0 )
            printf( "Workstation " );
            if ( lstrcmpi( "LANMANNT", szProductType) == 0 )
            printf( "Server " );
            if ( lstrcmpi( "SERVERNT", szProductType) == 0 )
            printf( "Advanced Server " );
            printf( "%d.%d ", osvi.dwMajorVersion, osvi.dwMinorVersion );
            }
            // Display service pack (if any) and build number.
            if( osvi.dwMajorVersion == 4 &&
            lstrcmpi( osvi.szCSDVersion, "Service Pack 6" ) == 0 )
            {
            HKEY hKey;
            LONG lRet;
            // Test for SP6 versus SP6a.
            lRet = RegOpenKeyEx( HKEY_LOCAL_MACHINE,
            "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Hotfix\\Q246009",
            0, KEY_QUERY_VALUE, &hKey );
            if( lRet == ERROR_SUCCESS )
            printf( "Service Pack 6a (Build %d)\n",
            osvi.dwBuildNumber & 0xFFFF );
            else // Windows NT 4.0 prior to SP6a
            {
            printf( "%s (Build %d)\n",
            osvi.szCSDVersion,
            osvi.dwBuildNumber & 0xFFFF);
            }
            RegCloseKey( hKey );
            }
            else // not Windows NT 4.0
            {
            printf( "%s (Build %d)\n",
            osvi.szCSDVersion,
            osvi.dwBuildNumber & 0xFFFF);
            }
            break;
            // Test for the Windows Me/98/95.
            case VER_PLATFORM_WIN32_WINDOWS:
            if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 0)
            {
            printf ("Microsoft Windows 95 ");
            if (osvi.szCSDVersion[1]=='C' || osvi.szCSDVersion[1]=='B')
            printf("OSR2 " );
            }
            if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 10)
            {
            printf ("Microsoft Windows 98 ");
            if ( osvi.szCSDVersion[1] == 'A' )
            printf("SE " );
            }
            if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 90)
            {
            printf ("Microsoft Windows Millennium Edition\n");
            }
            break;
            case VER_PLATFORM_WIN32s:
            printf ("Microsoft Win32s\n");
            break;
            }
            return TRUE;
            }
            

            posted on 2010-05-09 08:11 wrh 閱讀(767) 評論(0)  編輯 收藏 引用

            導航

            <2010年5月>
            2526272829301
            2345678
            9101112131415
            16171819202122
            23242526272829
            303112345

            統計

            常用鏈接

            留言簿(19)

            隨筆檔案

            文章檔案

            收藏夾

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            av午夜福利一片免费看久久| 办公室久久精品| 久久久青草青青国产亚洲免观| 97精品国产97久久久久久免费| 久久无码人妻精品一区二区三区| 亚洲综合久久综合激情久久| 亚洲人AV永久一区二区三区久久| 国产精品99久久久久久人| 国产午夜精品久久久久九九电影| 久久人人爽人人爽人人av东京热| 粉嫩小泬无遮挡久久久久久| 99久久婷婷国产一区二区| 亚洲精品乱码久久久久久蜜桃不卡| 99久久精品国产一区二区| 久久久久久久精品成人热色戒| 一本久久a久久精品综合夜夜| 香蕉久久夜色精品国产尤物| 热re99久久精品国产99热| 国产精品久久久久国产A级| 色婷婷噜噜久久国产精品12p| 久久有码中文字幕| 国产精品久久久久天天影视| 久久亚洲国产最新网站| 理论片午午伦夜理片久久| 中文精品久久久久国产网址 | 99久久精品国产高清一区二区 | 久久国产精品国语对白| 精品久久777| 国产成人精品久久| 久久青青草原精品国产| 久久精品国产久精国产| 久久综合给久久狠狠97色| 久久免费视频网站| 丁香狠狠色婷婷久久综合| 99精品久久精品一区二区| 久久精品毛片免费观看| 亚洲国产精品无码久久98| 久久青青草原亚洲av无码app | 久久天天躁狠狠躁夜夜av浪潮| 久久久久婷婷| 久久久久人妻一区精品色|