예제 #1
0
//取得所有的文件版本信息,各信息间以\n分隔 
CString HFileVersion::GetFullVersion() 
{ 
	CString strRet; 
	/* 
	szRet = "文件版本: " + GetFileVersion() + "\n"; 
	szRet += "说明: " + GetFileDescription() +"\n"; 
	szRet += "版权: " + GetLegalCopyright() +"\n"; 
	szRet += "备注: " + GetComments() + "\n"; 
	szRet += "产品版本: " + GetProductVersion() +"\n"; 
	szRet += "产品名称: " + GetProductName() +"\n"; 
	szRet += "个人用内部版本说明: " + GetPrivateBuild() +"\n"; 
	szRet += "公司名称: " + GetCompanyName() +"\n"; 
	szRet += "合法商标: " + GetLegalTrademarks() +"\n"; 
	szRet += "内部名称: " + GetInternalName() +"\n"; 
	szRet += "特殊内部版本说明: " + GetSpecialBuild() +"\n"; 
	szRet += "源文件名: " + GetOriginalFilename() +"\n"; 
	*/ 
	strRet = "FileVersion: " + GetFileVersion() + "\n"; 
	strRet += "FileDescription: " + GetFileDescription() +"\n"; 
	strRet += "CopyRight: " + GetLegalCopyright() +"\n"; 
	strRet += "Comments: " + GetComments() + "\n"; 
	strRet += "ProductVersion: " + GetProductVersion() +"\n"; 
	strRet += "ProductName: " + GetProductName() +"\n"; 
	strRet += "PrivateBuild: " + GetPrivateBuild() +"\n"; 
	strRet += "CompanyName: " + GetCompanyName() +"\n"; 
	strRet += "TradeMarks: " + GetLegalTrademarks() +"\n"; 
	strRet += "InternalName: " + GetInternalName() +"\n"; 
	strRet += "SpecialBuild: " + GetSpecialBuild() +"\n"; 
	strRet += "OriginalFileName: " + GetOriginalFilename() +"\n"; 
	return strRet; 
} 
예제 #2
0
static void GetObjectDescription(DBEVENTINFO *dbei, TCHAR* str, int cbStr)
{
	switch(dbei->eventType) {
	case EVENTTYPE_MESSAGE:
		GetMessageDescription(dbei, str, cbStr);
		break;

	case EVENTTYPE_URL:
		GetUrlDescription(dbei, str, cbStr);
		break;

	case EVENTTYPE_FILE:
		GetFileDescription(dbei, str, cbStr);
		break;

	default:
		DBEVENTTYPEDESCR *et = (DBEVENTTYPEDESCR*)CallService(MS_DB_EVENT_GETTYPE, (WPARAM)dbei->szModule, (LPARAM)dbei->eventType);
		if (et && (et->flags & DETF_HISTORY))
			GetMessageDescription(dbei, str, cbStr);
		else
			*str = 0;
}	}
예제 #3
0
BOOL CProcessTool::GetProcessExtendInfo(PSYSTEM_PROCESS_INFORMATION pSPI,PPROCESS_EXTEND_INFO pExtendInfo)
{
	HANDLE hProcess;
	TCHAR szBuf[2048] ={0};

	memset(pExtendInfo,0,sizeof(PPROCESS_EXTEND_INFO));

	hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,pSPI->UniqueProcessId);
	if(hProcess==NULL)return FALSE;

	//Get Exe Path,Description,Company Name
	if(GetModuleFileNameEx(hProcess,NULL,szBuf,MAX_PATH)!=0)
	{
		pExtendInfo->strExeFilePath = szBuf;
		GetFileDescription(szBuf,pExtendInfo->strDescription,
			pExtendInfo->strCompanyName);
	}

	//Get Virtual Memory Size
	PROCESS_MEMORY_COUNTERS pmc;
	if(GetProcessMemoryInfo(hProcess,&pmc,sizeof(PROCESS_MEMORY_COUNTERS)))
	{
		pExtendInfo->dwVirtualMemorySize = pmc.PagefileUsage;
	}


	//Get Parent Process File Path
	HANDLE hParent =NULL;
	hParent = OpenProcess(PROCESS_VM_READ|PROCESS_QUERY_INFORMATION,
		FALSE,pSPI->InheritedFromUniqueProcessId);
	if(hParent!=NULL)
	{
		memset(szBuf,0,sizeof(szBuf));
		if(GetModuleFileNameEx(hParent,NULL,szBuf,MAX_PATH)!=0)
		{
			pExtendInfo->strParentFilePath = szBuf;
		}
	}

	//Get Username
	if(WinStationGetProcessSid&&CachedGetUserFromSid)
	{
		wchar_t wcsUserName[100]={0};
		char mbsUserName[100]={0};
		size_t NumOfCharConverted;

		DWORD dwSize = sizeof(szBuf)/sizeof(TCHAR);
		FILETIME ftStartTime;
		CopyMemory(&ftStartTime,&pSPI->CreateTime,sizeof(FILETIME));
		if(WinStationGetProcessSid(NULL,pSPI->UniqueProcessId,ftStartTime,
			(LPBYTE)szBuf,&dwSize))
		{
			CachedGetUserFromSid(szBuf,wcsUserName,&dwSize);
#ifdef _UNICODE
			pExtendInfo->strUserName = wcsUserName;
#else
			wcstombs_s(&NumOfCharConverted,mbsUserName,wcsUserName,
				sizeof(mbsUserName));
			pExtendInfo->strUserName = mbsUserName;
#endif
		}

	}
	//Get Start time
	{
		SYSTEMTIME st;
		ZeroMemory(&st,sizeof(SYSTEMTIME));
		FileTimeToSystemTime((FILETIME *)&pSPI->CreateTime,&st);
		CTime Time(st);

		Time +=CTimeSpan(0,8,0,0);
		pExtendInfo->strStartTime = Time.Format(TEXT("%Y-%m-%d %H:%M:%S"));
	}
	


	return TRUE;
}
예제 #4
0
/// Retrieves the file description information in the requested language id.
/// String version. [VH 2005-04-03]
//
tstring TModuleVersionInfo::GetFileDescription(uint lang)
  {LPCTSTR v = _T(""); E = GetFileDescription(v, lang); return v;}