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

📄 sh_filever.cpp

📁 rsa算法打的一个包
💻 CPP
字号:
// SH_FileVer.cpp: implementation of the SH_FileVer class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "SH_FileVer.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

SH_FileVer::SH_FileVer()
{
    m_strCompanyName     = _T("");
    m_strFileDescription  = _T("");
    m_strFileVersion      = _T("");
    m_strInternalName     = _T(""); 
    m_strLegalCopyright   = _T(""); 
    m_strOriginalFileName = _T("");
    m_strProductName      = _T(""); 
    m_strProductVersion   = _T(""); 
    m_strComments         = _T(""); 
    m_strLegalTrademarks  = _T(""); 
    m_strPrivateBuild     = _T(""); 
    m_strSpecialBuild     = _T(""); 
    m_strFileName         = _T("");
}

SH_FileVer::SH_FileVer(LPCTSTR lpszFile)
{
    m_strCompanyName      = _T("");
    m_strFileDescription  = _T("");
    m_strFileVersion      = _T("");
    m_strInternalName     = _T(""); 
    m_strLegalCopyright   = _T(""); 
    m_strOriginalFileName = _T("");
    m_strProductName      = _T(""); 
    m_strProductVersion   = _T(""); 
    m_strComments         = _T(""); 
    m_strLegalTrademarks  = _T(""); 
    m_strPrivateBuild     = _T(""); 
    m_strSpecialBuild     = _T(""); 
    m_strFileName         = lpszFile;
}

SH_FileVer::~SH_FileVer()
{
}

BOOL SH_FileVer::GetVerInfo(LPCTSTR lpszFileName)
{
    SetFileName(lpszFileName);
    return GetVerInfo();
}

BOOL SH_FileVer::GetVerInfo()
{
    LPVOID lpVar1;
    LPVOID lpVar2;
    BYTE * pVerInfo = NULL;
    DWORD dwSize;
    DWORD dwHandle = 0;
    WORD  *wTmp;
    CString strTmp;
    BOOL bRet = FALSE;
    char* szVerKey[13] = {"\\CompanyName"     , 
                         "\\FileDescription" , 
                         "\\FileVersion"     , 
                         "\\InternalName"    , 
                         "\\LegalCopyright"  , 
                         "\\OriginalFileName", 
                         "\\ProductName"     , 
                         "\\ProductVersion"  , 
                         "\\Comments"        , 
                         "\\LegalTrademarks" , 
                         "\\PrivateBuild"    , 
                         "\\SpecialBuild"    , 
                         "\\StringFileInfo\\"};


	dwSize = GetFileVersionInfoSize((char*)GetFileName(), &dwHandle);
	
    if(dwSize == 0) return FALSE;

    pVerInfo = new BYTE[dwSize];

    bRet = GetFileVersionInfo((char*)GetFileName(), dwHandle,dwSize, pVerInfo);

	if(bRet)
    {
		bRet = VerQueryValue(pVerInfo, "\\VarFileInfo\\Translation", &lpVar1, (UINT*)&dwSize);
        
		if(bRet)
        {
			wTmp = (WORD*)lpVar1;

			for(int index = 0; index < 12; index++)
            {
				
				strTmp.Format("%s%04x%04x%s", szVerKey[12], *wTmp, *(wTmp + 1), szVerKey[index]);
				if(VerQueryValue(pVerInfo, strTmp.GetBuffer(strTmp.GetLength()), &lpVar2, (UINT*)&dwSize))
                {
                    VerInfo2String(index, (char*)lpVar2);
                    TRACE("%s\n",(char*)lpVar2);
				}
			}
		}
		
	}

	SAFE_DELETE_ARRAY(pVerInfo);
    return TRUE;
}


BOOL SH_FileVer::VerInfo2String(int nIndex, LPCTSTR lpszVer)
{
   BOOL bRet = TRUE;
   switch(nIndex)
   {
	case 0:
		m_strCompanyName		= lpszVer;
		break;
	case 1:
		m_strFileDescription	= lpszVer;
		break;
	case 2:
		m_strFileVersion		= lpszVer;
		break;
	case 3:
		m_strInternalName	    = lpszVer;
		break;
	case 4:
		m_strLegalCopyright     = lpszVer;
		break;
	case 5:
		m_strOriginalFileName	= lpszVer;
		break;
	case 6:
		m_strProductName	    = lpszVer;
		break;
	case 7:
		m_strProductVersion	    = lpszVer;
		break;
	case 8:
		m_strComments	        = lpszVer;
		break;
	case 9:
		m_strLegalTrademarks	= lpszVer;
		break;
	case 10:
		m_strPrivateBuild	    = lpszVer;
		break;
	case 11:
		m_strSpecialBuild	    = lpszVer;
		break;
    default:
        bRet = FALSE;
	}
   return bRet;
}

⌨️ 快捷键说明

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