Guten Abend,
danke für diese schönen Tipps. Ich habe jetzt schonmal versucht etwas zu kreieren, bin aber bis jetzt noch zu keinem Erfolg gekommen und zum zeigen muss ich noch einiges zusammenfassen und weiter ausprobieren.
Es ist eben nicht einfach diese Struktur zusammen zubauen
Wenn ich dein Code als Grundlage nehme verarbeite ich am Ende den AnsiChar. Ich bräuchte ja aber den Pointer, damit ich diesen an Children weitergeben kann.
Btw.: ich hatte von Zacherl folgende Strukturen bekommen, die ich ein wenig aufgebessert habe, damit es funktioniert.
Delphi-Quellcode:
type
TFIXEDFILEINFO = packed record
dwSignature: DWord;
dwStrucVersion: DWord;
dwFileVersionMS: DWord;
dwFileVersionLS: DWord;
dwProductVersionMS: DWord;
dwProductVersionLS: DWord;
dwFileFlagsMask: DWord;
dwFileFlags: DWord;
dwFileOS: DWord;
dwFileType: DWord;
dwFileSubtype: DWord;
dwFileDateMS: DWord;
dwFileDateLS: DWord;
end;
TVERSIONSTRING = packed record
wLength: Word;
wValueLength: Word;
wType: Word;
{$IFDEF D12ORABOVE}
szKey: String;
{$ELSE}
szKey: WideString;
{$ENDIF}
Padding: TWordArray;
{$IFDEF D12ORABOVE}
Value: String;
{$ELSE}
Value: WideString;
{$ENDIF}
end;
TVERSIONSTRINGTABLE = packed record
wLength: Word;
wValueLength: Word;
wType: Word;
{$IFDEF D12ORABOVE}
szKey: Array[0..8] of Char;
{$ELSE}
szKey: Array[0..8] of WideChar;
{$ENDIF}
Padding: TWordArray;
Children: array of TVERSIONSTRING;
end;
TSTRINGFILEINFO = packed record
wLength: Word;
wValueLength: Word;
wType: Word;
{$IFDEF D12ORABOVE}
szKey: Array[0..14] of Char;
{$ELSE}
szKey: Array[0..14] of WideChar;
{$ENDIF}
Padding: TWordArray;
Children: Array of TVERSIONSTRINGTABLE;
end;
TVERSIONINFO = packed record
wLength: Word;
wValueLength: Word;
wType: Word;
szKey: Array[0..15] of WideChar;
Padding1: Word;
Value: TFIXEDFILEINFO;
Padding2: Word;
Children: Array of TSTRINGFILEINFO;
end;
Anfangs gab es Probleme in der Reihenfolge, nachdem ich das geändert hatte konnte ich die VERSIONINFO schreiben, aber die children gehen bis heute noch nicht, da tu ich mich wohl etwas schwer.
Gruß
Mazel