请问如何获取文件版权信息? |
尚未結案
|
bundur
一般會員 ![]() ![]() 發表:16 回覆:44 積分:22 註冊:2002-11-30 發送簡訊給我 |
|
pental
初階會員 ![]() ![]() 發表:3 回覆:48 積分:30 註冊:2003-09-21 發送簡訊給我 |
這是一段BCB的程式碼,我是把這個功能封裝成一個元件,這是其中最重要的部分,就是取出檔案的版本訊息,這個函式的第二的參數是一個字元陣列,版本的訊息如 1.1.1.0 這樣的字串。
void __fastcall TFileVersion::GetVersionOfFile (char * pszAppName, // file char * pszVerBuff, // receives version int iVerBuffLen, // size of buffer char * pszLangBuff, // receives language int iLangBuffLen) // size of buffer { DWORD dwScratch; DWORD * pdwLangChar; DWORD dwInfSize ; UINT uSize; BYTE * pbyInfBuff; char szVersion [32]; char szResource [80]; char * pszVersion = szVersion; dwInfSize = GetFileVersionInfoSize (pszAppName, &dwScratch); if (dwInfSize) { pbyInfBuff = new BYTE [dwInfSize]; memset (pbyInfBuff, 0, dwInfSize); if (pbyInfBuff) { if (GetFileVersionInfo (pszAppName, 0, dwInfSize, pbyInfBuff)) { if (VerQueryValue (pbyInfBuff, "\\VarFileInfo\\Translation", (void**)(&pdwLangChar), &uSize)) { if (VerLanguageName (LOWORD (*pdwLangChar), szResource, sizeof(szResource))) { strncpy (pszLangBuff, szResource, iLangBuffLen); } wsprintf (szResource, "\\StringFileInfo\\XX\\FileVersion", LOWORD (*pdwLangChar), HIWORD (*pdwLangChar)); if (VerQueryValue (pbyInfBuff, szResource, (void**)(&pszVersion), &uSize)) { strncpy (pszVerBuff, pszVersion, iVerBuffLen-1); } } } delete [] pbyInfBuff; } } } //------------------------------------------------------------------------------- |
bundur
一般會員 ![]() ![]() 發表:16 回覆:44 積分:22 註冊:2002-11-30 發送簡訊給我 |
引言: 這是一段BCB的程式碼,我是把這個功能封裝成一個元件,這是其中最重要的部分,就是取出檔案的版本訊息,這個函式的第二的參數是一個字元陣列,版本的訊息如 1.1.1.0 這樣的字串。不好意思,我想得到的不止是版本号,还要如公司名称,备注,版权所有等的信息. ==================== 交流是进步的良师 批评是成长的益友void __fastcall TFileVersion::GetVersionOfFile (char * pszAppName, // file char * pszVerBuff, // receives version int iVerBuffLen, // size of buffer char * pszLangBuff, // receives language int iLangBuffLen) // size of buffer { DWORD dwScratch; DWORD * pdwLangChar; DWORD dwInfSize ; UINT uSize; BYTE * pbyInfBuff; char szVersion [32]; char szResource [80]; char * pszVersion = szVersion; dwInfSize = GetFileVersionInfoSize (pszAppName, &dwScratch); if (dwInfSize) { pbyInfBuff = new BYTE [dwInfSize]; memset (pbyInfBuff, 0, dwInfSize); if (pbyInfBuff) { if (GetFileVersionInfo (pszAppName, 0, dwInfSize, pbyInfBuff)) { if (VerQueryValue (pbyInfBuff, "\\VarFileInfo\\Translation", (void**)(&pdwLangChar), &uSize)) { if (VerLanguageName (LOWORD (*pdwLangChar), szResource, sizeof(szResource))) { strncpy (pszLangBuff, szResource, iLangBuffLen); } wsprintf (szResource, "\\StringFileInfo\\XX\\FileVersion", LOWORD (*pdwLangChar), HIWORD (*pdwLangChar)); if (VerQueryValue (pbyInfBuff, szResource, (void**)(&pszVersion), &uSize)) { strncpy (pszVerBuff, pszVersion, iVerBuffLen-1); } } } delete [] pbyInfBuff; } } } //------------------------------------------------------------------------------- |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |