Forum: Win32/Win64 API (native code)
Delphi
by FriFra,
30. Aug 2005
Also Reshack "merkt" auch nicht, wenn eine leere Stringresource (163 und 165) da ist:
http://www.frifra.de/Temp/resreshack.jpg
Ich hab jetzt meine Funktion angepasst und nun läuft sie korrekt: function GetMaxResID: integer;
function EnumResourceNamesProc(Module: HMODULE; ResType: PChar; ResID:
Integer; lParam: TStringList): Integer; stdcall;
function Fill(Wert: string):...
Forum: Win32/Win64 API (native code)
Delphi
by FriFra,
30. Aug 2005
Dann könnt ich auch gleich hergehen und jedes mal die entspr. Schleife in meinem Programm anpassen....
Nein, ich will das nicht statisch lösen, sondern zur Laufzeit ermitteln :x ... Das es irgendwie gehen muß zeigen ja div. Resourcehacker, welche die Testresourcen auch exakt ermitteln können :gruebel: ...
Forum: Win32/Win64 API (native code)
Delphi
by FriFra,
30. Aug 2005
Das ist keine Lösung, da es auch gültige Stringresourcen geben kann die einen leeren String enthalten ;) und da wäre dann frühzeitig schluß :? ...
P.S.: Die "leeren" strings kommen ganz einfach zu stande, wenn in z.B: ein Control aus meinem Programm entferne und ich die Caption/den Text vorerst nicht mehr benötige, dann mache ich diesen Text leer, um ihn bei der nächsten Gelegenheit für etwas...
Forum: Win32/Win64 API (native code)
Delphi
by FriFra,
30. Aug 2005
Diesen Tread hatte ich auch schon gelesen und auch umgesetzt... Das Problem habe ich trotzdem noch.
Selbst wenn ich mit EnumResourceNames alle Resourcen ermittle und versuche jede "Teilresource" zu laden um bei einem möglichen Fehler (nicht vorhanden) abzubrechen liefert mir GetLastError trotz definitiv nicht vorhandener ID ein ERROR_SUCCESS, deshalb komme ich auch so auf 175 statt 163 :roll: ...
Forum: Win32/Win64 API (native code)
Delphi
by FriFra,
29. Aug 2005
Sicher!
Codeauszug function GetMaxResID: integer;
function EnumResourceNamesProc(Module: HMODULE; ResType: PChar; ResID:
Integer; lParam: TStringList): Integer; stdcall;
function Fill(Wert: string): string;
begin
Result := Wert;
while Length(Result) < 6 do
Result := '0' + Result;
Forum: Win32/Win64 API (native code)
Delphi
by FriFra,
29. Aug 2005
Hab ich versucht... die Stringresourcen haben jedoch keine Namen und werden nicht gefunden...
Forum: Win32/Win64 API (native code)
Delphi
by FriFra,
29. Aug 2005
Ich hab jetzt mal eine Funktion geschrieben, die mir eigentlich den höchsten Index liefern sollte...
function GetMaxResID: integer;
var
Buffer: array of Char;
n: integer;
begin
for n := 0 to 9999 do
begin
if Loadstring(hinstance, n, @buffer, MAX_PATH) = 0 then
begin