webForumDet fria alternativet
Logga in / Bli medlem

Kontrollera version av fil

Programmering

1 svar · 208 visningar · startad av Rickard

Medlem sedan maj 2001287 inlägg
Frågan#1

Hallojj!

Jag försöker desperat få tag på någon som kan hjälpa mig med någon slags filversionskontroll.

Jag vill söka av filen wmp.dll som ligger i c:/windows/system32 (eller c:/winnt/system32 eller vart man nu har sin system katalog)

i dll filen finns det 9 olika poster att läsa av:

1: 'CompanyName'
2: 'FileDescription'
3: 'FileVersion'
4: 'InternalName'
5: 'LegalCopyRight'
6: 'OriginalFileName'
7: 'ProductName'
8: 'ProductVersion'
9: 'SpecialBuild'

Jag behöver ett script som kan kolrollera så att FileVersion börjar på "9" (sen vad för sifror som kommer efter är strunt samma).
Om FileVersion börjar på ´9 så skall programmet fortsätta köras precis som vanligt.
Men om FileVersion börjar på något annat nummer, så skall programmet deaktivera WindowsMediaPlayer1 och poppa upp en liten ruta med ett meddelande.

Finns det någon av er som vet hur jag skall göra detta?
Finns det något annat sätt att kontrollera vilken version av WMP som är installerad så är alla förslag välkomna, men just nu är wmp.dll det enda sättet jag kan komma på att intta versionsinfo ifrån.

Medlem sedan nov. 2003310 inlägg
#2

Så här kollar du versionsinfon på en fil:

Filnamn är sökvägen till filen.
I ditt fall så antar jag att du bara behöver kolla om Major är 9.

function TMain.GetVersion(FilNamn: String): String;
var 
  VerInfoSize: DWORD; 
  VerInfo: Pointer; 
  VerValueSize: DWORD; 
  VerValue: PVSFixedFileInfo; 
  Dummy: DWORD; 
begin 
  VerInfoSize := GetFileVersionInfoSize(PChar(FilNamn), Dummy);
  GetMem(VerInfo, VerInfoSize);
  GetFileVersionInfo(PChar(FilNamn), 0, VerInfoSize, VerInfo);
  VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize);
  with VerValue^ do
  begin 
    Result := IntToStr(dwFileVersionMS shr 16); 
    Result := Result + '.' + IntToStr(dwFileVersionMS and $FFFF); 
    Result := Result + '.' + IntToStr(dwFileVersionLS shr 16); 
    Result := Result + '.' + IntToStr(dwFileVersionLS and $FFFF); 
  end; 
  FreeMem(VerInfo, VerInfoSize);

end;

/Ante

259 ms totalt · 4 externa anrop · v20260731065814-full.5386d3bf
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)