用一般的那个API的方法,取到的只是IE的版本号。怎么才能取到自身的版本号呢?
解决方案 »
- delphi调用sap开发的Web Service,出错
- ado连接主机SQL服务器问题
- 我准备学习delphi,想请教几个问题
- 请问打开Ie后怎么修改Ie地址栏里的显示值? 收罗方法.谢谢
- sendmessage里的属性索引如何在msdn按功能和效果查找出来
- 关注过《有黑龙江的兄弟吗?进来认识一下!》帖子的兄弟进来领分!
- 没人会SOAP吗?天啊...我太超前了,110分想送,请进
- 如何关闭dll子窗口?
- tinger(影虎)看过来……
- 给位大哥:Delphi中的哪个单元有Winsock2的函数?如:WSASocket(,,,,,)
- qucikreport报表打印时总提示‘printer selected is invaild’,打印机无效,why???
- 声卡的录音的 LineIn音量的控制问题
TVersionLanguage = (vlArabic, vlBulgarian, vlCatalan, vlTraditionalChinese,
vlCzech, vlDanish, vlGerman, vlGreek, vlUSEnglish, vlCastilianSpanish,
vlFinnish, vlFrench, vlHebrew, vlHungarian, vlIcelandic, vlItalian,
vlJapanese, vlKorean, vlDutch, vlNorwegianBokmel, vlPolish,
vlBrazilianPortuguese, vlRhaetoRomanic, vlRomanian, vlRussian,
vlCroatoSerbian, vlSlovak, vlAlbanian, vlSwedish, vlThai, vlTurkish,
vlUrdu, vlBahasa, vlSimplifiedChinese, vlSwissGerman, vlUKEnglish,
vlMexicanSpanish, vlBelgianFrench, vlSwissItalian, vlBelgianDutch,
vlNorwegianNynorsk, vlPortuguese, vlSerboCroatian, vlCanadianFrench,
vlSwissFrench, vlUnknown);const LanguageValues: array[TVersionLanguage] of Word = ($0401, $0402, $0403,
$0404, $0405, $0406, $0407, $0408, $0409, $040A, $040B, $040C, $040D,
$040E, $040F, $0410, $0411, $0412, $0413, $0414, $0415, $0416, $0417,
$0418, $0419, $041A, $041B, $041C, $041D, $041E, $041F, $0420, $0421,
$0804, $0807, $0809, $080A, $080C, $0810, $0813, $0814, $0816, $081A,
$0C0C, $100C, $0000);
function GetCurrentVersionNo: string;
var
dLength, dSize: DWORD;
pcBuf, pcValue: PChar;
TempVersionLanguage: TVersionLanguage;
sTemp: string;
acFileName: array[0..255] of Char;
begin
Result := ''; GetModuleFileName(HInstance, acFileName, SizeOf(acFileName) - 1); dSize := GetFileVersionInfoSize(acFileName, dSize); if dSize = 0 then Exit; pcBuf := AllocMem(dSize); GetFileVersionInfo(acFileName, 0, dSize, pcBuf); if VerQueryValue(pcBuf, PChar('\VarFileInfo\Translation'), Pointer(pcValue), dLength) then
begin
for TempVersionLanguage := vlArabic to vlUnknown do
if LoWord(Longint(Pointer(pcValue)^)) = LanguageValues[TempVersionLanguage] then Break; sTemp := IntToHex(MakeLong(HiWord(Longint(Pointer(pcValue)^)), LoWord(Longint(Pointer(pcValue)^))), 8); if VerQueryValue(pcBuf, PChar('StringFileInfo\' + sTemp + '\FileVersion'), Pointer(pcValue), dLength) then
Result := StrPas(pcValue);
end; FreeMem(pcBuf, dSize);
end;