⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ltkwindowsutil.cpp

📁 An open source handwriting recongnition package!!!
💻 CPP
📖 第 1 页 / 共 2 页
字号:
   {
      // Test for the Windows NT product family.
      case VER_PLATFORM_WIN32_NT:

         // Test for the specific product family.
         if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 2 )
         {
            outStr = "Microsoft Windows Server 2003 family, ";
         }

         if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1 )
         {
            outStr = "Microsoft Windows XP ";
         }

         if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 0 )
         {
            outStr = "Microsoft Windows 2000 ";
         }

         if ( osvi.dwMajorVersion <= 4 )
         {
            outStr = "Microsoft Windows NT ";
         }

         // Test for specific product on Windows NT 4.0 SP6 and later.
         if( bOsVersionInfoEx )
         {
            // Test for the workstation type.
               if( osvi.dwMajorVersion == 4 )
               {
                  outStr += "Workstation 4.0 ";
                }
         }
         else  // Test for specific product on Windows NT 4.0 SP5 and earlier
         {
            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 SUCCESS;

            lRet = RegQueryValueEx( hKey, "ProductType", NULL, NULL,
               (LPBYTE) szProductType, &dwBufLen);
            if( (lRet != ERROR_SUCCESS) )
               return SUCCESS;

            RegCloseKey( hKey );

            if ( lstrcmpi( "WINNT", szProductType) == 0 )
            {
                outStr += "Workstation ";
            }

            if ( lstrcmpi( "LANMANNT", szProductType) == 0 )
            {
                outStr += "Server ";
            }

            if ( lstrcmpi( "SERVERNT", szProductType) == 0 )
            {
                outStr += "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 )
            {
				char tempStr[50];
				sprintf(tempStr,"%d", osvi.dwBuildNumber & 0xFFFF);
				string str1 = string(tempStr);
				string temp = "Service Pack 6a (Build " + str1 + ")";

                outStr += temp;
            }
            else // Windows NT 4.0 prior to SP6a
            {
				char tempStr[100];

                sprintf (tempStr, "%s (Build %d)",
                                  osvi.szCSDVersion,
                                  osvi.dwBuildNumber & 0xFFFF);
				string str1 = string(tempStr);

                outStr +=  str1;
            }

            RegCloseKey( hKey );
         }
         else // Windows NT 3.51 and earlier or Windows 2000 and later
         {
			char tempStr[100];
			
            sprintf (tempStr, "%s (Build %d)",
                  osvi.szCSDVersion,
                  osvi.dwBuildNumber & 0xFFFF);
            
				string str1 = string(tempStr);

            outStr += str1;
            
         }


         break;

      // Test for the Windows 95 product family.
      case VER_PLATFORM_WIN32_WINDOWS:

         if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 0)
         {
            outStr += "Microsoft Windows 95 ";
            
            if ( osvi.szCSDVersion[1] == 'C' || osvi.szCSDVersion[1] == 'B' )
            {
                outStr +=  "OSR2 ";
            }
         } 

         if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 10)
         {
            outStr += "Microsoft Windows 98 ";
             
            if ( osvi.szCSDVersion[1] == 'A' )
            {
                outStr +=  "SE " ;
            }
         } 

         if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 90)
         {
            outStr += "Microsoft Windows Millennium Edition";
         } 
         break;

      case VER_PLATFORM_WIN32s:
            outStr += "Microsoft Win32s";

         break;
   }
   
   return SUCCESS;
}

/**************************************************************************
 * AUTHOR		: Nidhi Sharma
 * DATE			: 26-06-2008
 * NAME			: recordStartTime
 * DESCRIPTION	: 
 * ARGUMENTS      : 
 *
 * RETURNS		: 
 * NOTES			: 
 * CHANGE HISTROY
 * Author			Date				Description
 ***************************************************************************/
int LTKWindowsUtil::recordStartTime()
{
    time(&m_startTime);
    return SUCCESS;
}

/**************************************************************************
 * AUTHOR		: Nidhi Sharma
 * DATE			: 26-06-2008
 * NAME			: recordEndTime
 * DESCRIPTION	: 
 * ARGUMENTS      : 
 *
 * RETURNS		: 
 * NOTES			: 
 * CHANGE HISTROY
 * Author			Date				Description
 ***************************************************************************/
int LTKWindowsUtil::recordEndTime()
{
    time(&m_endTime);
    return SUCCESS;
}

/**************************************************************************
 * AUTHOR		: Nidhi Sharma
 * DATE			: 26-06-2008
 * NAME			: diffTime
 * DESCRIPTION	: 
 * ARGUMENTS      : 
 *
 * RETURNS		: 
 * NOTES			: 
 * CHANGE HISTROY
 * Author			Date				Description
 ***************************************************************************/
int LTKWindowsUtil::diffTime(string& outStr)
{
    char temp[10];
	sprintf(temp, "%.1f", difftime(m_endTime, m_startTime));
	string tempStr(temp) ;
    outStr = tempStr;
    return SUCCESS;
}

/**************************************************************************
 * AUTHOR		: Nidhi Sharma
 * DATE			: 26-06-2008
 * NAME			: getSystemTimeString
 * DESCRIPTION	: 
 * ARGUMENTS      : 
 *
 * RETURNS		: 
 * NOTES			: 
 * CHANGE HISTROY
 * Author			Date				Description
 ***************************************************************************/
int LTKWindowsUtil::getSystemTimeString(string& outStr)
{
    time_t rawtime;

	time(&rawtime);

	string timeStr = ctime(&rawtime);

	outStr = timeStr.substr(0, 24);

    return SUCCESS;
}

/**************************************************************************
 * AUTHOR		: Nidhi Sharma
 * DATE			: 17-07-2008
 * NAME			: getLibraryHandle
 * DESCRIPTION	: 
 * ARGUMENTS      : 
 *
 * RETURNS		: 
 * NOTES			: 
 * CHANGE HISTROY
 * Author			Date				Description
 ***************************************************************************/

void* LTKWindowsUtil::getLibraryHandle(const string& libName)
{
    string libNameWindows = libName + ".dll";
    
    void* libHandle =  NULL;

    libHandle = GetModuleHandle(libNameWindows.c_str());

    return libHandle;
}

/**************************************************************************
 * AUTHOR		: Nidhi Sharma
 * DATE			: 17-07-2008
 * NAME			: getEnvVariable
 * DESCRIPTION	: 
 * ARGUMENTS      : 
 *
 * RETURNS		: 
 * NOTES			: 
 * CHANGE HISTROY
 * Author			Date				Description
 ***************************************************************************/

string LTKWindowsUtil::getEnvVariable(const string& envVariableName)
{
	return getenv(envVariableName.c_str());
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -