获取执行程序各种属性

#pragma comment(lib, "Version.lib") 
BOOL GetFileVersionInfoTmp(char*   szFileName )
{
	if (NULL == szFileName)
	{
		AfxMessageBox("调用程序路径为空");
		return FALSE;
	}
	DWORD   dwSize   =   GetFileVersionInfoSize(szFileName,NULL);   
	LPVOID   pBlock   =   malloc(dwSize);   
	GetFileVersionInfo(szFileName,0,dwSize,pBlock);   

	CString strMsg;
	char*   pVerValue   =   NULL;   
	UINT   nSize   =   0;   
	VerQueryValue(pBlock,TEXT( "\\VarFileInfo\\Translation"), (LPVOID*)&pVerValue,&nSize);   

	CString   strSubBlock,strTranslation,strTemp;   

	strTemp.Format( "000%x",*((unsigned   short   int   *)pVerValue));   
	strTranslation   =   strTemp.Right(4);   
	strTemp.Format( "000%x",*((unsigned   short   int   *)&pVerValue[2]));   
	strTranslation   +=   strTemp.Right(4);   
	//strTranslation 080404b0为中文,040904E4为英文   


	//文件描述   
	strSubBlock.Format("\\StringFileInfo\\%s\\FileDescription",strTranslation);   
	VerQueryValue(pBlock,strSubBlock.GetBufferSetLength(256),(LPVOID*)&pVerValue,&nSize);   
	strSubBlock.ReleaseBuffer();    
	strMsg.Format("%s  文件描述:	%s\r",strMsg,pVerValue);

	//内部名称   
	strSubBlock.Format("\\StringFileInfo\\%s\\InternalName",strTranslation);   
	VerQueryValue(pBlock,strSubBlock.GetBufferSetLength(256),(LPVOID*)&pVerValue,&nSize);   
	strSubBlock.ReleaseBuffer();    
	strMsg.Format("%s  内部名称:	%s\r",strMsg,pVerValue);

	//合法版权   
	strSubBlock.Format("\\StringFileInfo\\%s\\LegalTradeMarks",strTranslation);   
	VerQueryValue(pBlock,strSubBlock.GetBufferSetLength(256),(LPVOID*)&pVerValue,&nSize);   
	strSubBlock.ReleaseBuffer();   
	strMsg.Format("%s  合法版权:	%s\r",strMsg,pVerValue);

	//原始文件名   
	strSubBlock.Format("\\StringFileInfo\\%s\\OriginalFileName",strTranslation);   
	VerQueryValue(pBlock,strSubBlock.GetBufferSetLength(256),(LPVOID*)&pVerValue,&nSize);   
	strSubBlock.ReleaseBuffer();    
	strMsg.Format("%s原始文件名:	%s\r",strMsg,pVerValue);

	//产品名称   
	strSubBlock.Format("\\StringFileInfo\\%s\\ProductName",strTranslation);   
	VerQueryValue(pBlock,strSubBlock.GetBufferSetLength(256),(LPVOID*)&pVerValue,&nSize);   
	strSubBlock.ReleaseBuffer();    
	strMsg.Format("%s  产品名称:	%s\r",strMsg,pVerValue);

	//产品版本   
	strSubBlock.Format("\\StringFileInfo\\%s\\ProductVersion",strTranslation);   
	VerQueryValue(pBlock,strSubBlock.GetBufferSetLength(256),(LPVOID*)&pVerValue,&nSize);   
	strSubBlock.ReleaseBuffer();   
	strMsg.Format("%s  产品版本:	%s\r",strMsg,pVerValue);

	//版权  
	strSubBlock.Format("\\StringFileInfo\\%s\\LegalCopyright",strTranslation);   
	VerQueryValue(pBlock,strSubBlock.GetBufferSetLength(256),(LPVOID*)&pVerValue,&nSize);   
	strSubBlock.ReleaseBuffer();    
	strMsg.Format("%s      版权:	%s\r",strMsg,pVerValue);

	//公司名  
	strSubBlock.Format("\\StringFileInfo\\%s\\CompanyName",strTranslation);   
	VerQueryValue(pBlock,strSubBlock.GetBufferSetLength(256),(LPVOID*)&pVerValue,&nSize);   
	strSubBlock.ReleaseBuffer();   

	strMsg.Format("%s    公司名:	%s\r",strMsg,pVerValue);
	AfxMessageBox(strMsg);

	free(pBlock); 

	return TRUE;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值