webForumDet fria alternativet

Kontrollera version av fil

1 svar · 206 visningar · startad av Rickard

RickardMedlem sedan maj 2001287 inlägg
#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.

HardrockerMedlem 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

124 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)