Ik denk dat ik daar op zich wel wat mee kan, maar waarom nieuwe bende installeren als het ook met de bestaande bende kan?
Ik heb nog het eea zitten uitpluizen en het voorbeeld blijft echt niet kloppen.
Het voorbeeld:
const
InfoNum = 10;
InfoStr: array[1..InfoNum] of string = ('CompanyName', 'FileDescription', 'FileVersion', 'InternalName', 'LegalCopyright', 'LegalTradeMarks', 'OriginalFileName', 'ProductName', 'ProductVersion', 'Comments');
var
S: string;
n, Len, i: DWORD;
Buf: PChar;
Value: PChar;
begin
S := Application.ExeName;
n := GetFileVersionInfoSize(PChar(S), n);
if n > 0 then
begin
Buf := AllocMem(n);
Memo1.Lines.Add('VersionInfoSize = ' + IntToStr(n));
GetFileVersionInfo(PChar(S), 0, n, Buf);
for i := 1 to InfoNum do
if VerQueryValue(Buf, PChar('StringFileInfo\040904E4\' + InfoStr[i]), Pointer(Value), Len) then //Hier klopten de haakjes iig niet
Memo1.Lines.Add(InfoStr[i] + ' = ' + Value);
FreeMem(Buf, n);
end
else
Memo1.Lines.Add('No version information found');
end;
De functie GetFileVersionInfo zou een bool terug moeten geven. Echter als ik deze waarde aan een eigen var toewijs en deze met een watch bekijk is deze nooit te zien, en krijg ik tijdens het uitvoeren van de functie de waarde
check: [process not accessible]
Nou heb ik echt van alles geprobeerd, maar ik krijg het niet aan de praat.
Iemand een ingeving of een oplossing?