|
감사합니다.
그런데 자주 쓰이는 부분일텐데 왜 VCL에 포함시키지 않을까요???
smleelms 님이 쓰신 글 :
: 이걸 찾으시는듯 하네요.
:
: AnsiString __fastcall TFormMain::GetInformation(AnsiString AFilename, AnsiString AQuery)
: {
: /* ※ AQuery List
: - CompanyName
: - FileDescription
: - FileVersion
: - InternalName
: - LegalCopyright
: - LegalTrademarks
: - ProductName
: - ProductVersion
: */
: if(AQuery.IsEmpty()) return "";
:
: DWORD dwHandle;
: LPVOID ptr;
: UINT uLength;
:
: DWORD dwVersionInfoSize = GetFileVersionInfoSize(AFilename.c_str(), &dwHandle);
: if(dwVersionInfoSize == 0) return "";
:
: LPVOID pFileInfo = (LPVOID) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwVersionInfoSize);
:
: GetFileVersionInfo(AFilename.c_str(), dwHandle, dwVersionInfoSize, pFileInfo);
: VerQueryValue(pFileInfo, TEXT("\\VarFileInfo\\Translation"), &ptr, &uLength);
:
: WORD *id = (WORD*) ptr;
: AnsiString szString = "\\StringFileInfo\\" + IntToHex(id[0], 4) + IntToHex(id[1], 4) + "\\" + AQuery;
:
: VerQueryValue(pFileInfo, szString.c_str(), &ptr, &uLength);
: if(uLength == 0) return "";
:
: AnsiString sOut = AnsiString((char *) ptr);
: HeapFree(GetProcessHeap(), 0, pFileInfo);
:
: return sOut;
: }
:
:
: 권기식.with☆ 님이 쓰신 글 :
: : 다른 질문이라 다른 글로 올립니다.
: :
: : 대부분 프로그램에는 About Form이 들어가서 프로그램에 대한 정보를 표시해줍니다.
: : VB의 경우 간단히 프로그램 버전을 가져올 수 있었는데...
: :
: : 빌더에서는 그게 안되더군요.
: : API 함수를 써야 한다고 하던데...
: :
: : 다른 라이브러리나 컴포넌트 혹은 지원 함수가 없는지 궁금합니다.
: :
: : 하나 만들어두면 되는데 이놈의 귀차니즘이란.. ^^a
|