![]() |
UpdateResource macht nicht was ich möchte
hiho nochmal :D
also jetzt bin ich dabei den ProductName einer anderen exe zu ändern... hab auch schon ganz brav gegoogelt und auch hier bin ich schon einigermaßen fündig geworden... erfolg blieb leider aus und deshalb meine frage:
Delphi-Quellcode:
hier bekomme ich die meldung: [Pascal Fehler] changeappname.pas(39): E2010 Inkompatible Typen: 'Word' und 'string'
procedure TfrmChangeAppName.Button1Click(Sender: TObject);
var h : Thandle; s : string; begin s:= edit1.Text; h := BeginUpdateResource(pchar(AppPath),false); UpdateResource(h,'RT_STRING',MakeIntResource(1),'ProductName',@s[1],SizeOf(s)); EndUpdateResource(h,false); end; wie bekomm ich das in den griff? |
Re: UpdateResource macht nicht was ich möchte
also bei mir soll ich da, wo du 'ProductName' angegeben hast, die Sprache angeben (also in diesem Fall vermutlich eine 0)
|
Re: UpdateResource macht nicht was ich möchte
habs jetzt schonmal hinbekommen, dass es startet :)
Delphi-Quellcode:
bei klick auf den button passiert einfach nichts... keine fehlermeldung und auch die datei ist nicht geändert...
procedure TfrmChangeAppName.Button1Click(Sender: TObject);
var h : Thandle; s : string; begin s:= edit1.Text; h := BeginUpdateResource(pchar(AppPath),false); UpdateResource(h,RT_VERSION,MakeIntResource(1),0,@s[9],SizeOf(s)); EndUpdateResource(h,false); end; an der stelle wo die 9 steht, hatte ich auch schon ['ProductName'] stehn, aber dann kommt: [Pascal Fehler] changeappname.pas(39): E2010 Inkompatible Typen: 'Integer' und 'string' die 9 hatte ich nur zufällig... hätte auch ne 5 sein können :D |
Re: UpdateResource macht nicht was ich möchte
Du arbeitest hier mit der WinAPI, da gibt es keine Exceptions als Fehlermeldungen ... sihe GetLastError und dann schau dir mal an, was die Funnktionen für ein Ergebnis liefern.
Ergebnise ... also was in h, i und j drin steht.
Delphi-Quellcode:
und wie kommst du auf die 9? :gruebel: (@s[9])
i := UpdateResource(...
j := EndUpdateResource(... schau dir auch mal an, was man übergeben muß und vorallem was wie als Funktionsergebnisse zu erwarten ist. siehe ![]() ![]() ![]() |
Re: UpdateResource macht nicht was ich möchte
also ich bin schonmal n stück weiter wieder :P
und zwar wird jetzt schon etwas in die datei geschrieben... das schonmal gut ... nur an der falschen stelle :(
Delphi-Quellcode:
wenn man im resourcehacker links auf version klickt, dann muss man ja noch ne 1 anklicken um die infos zu sehen...
procedure TfrmChangeAppName.Button1Click(Sender: TObject);
var h : Thandle; s : string; begin s:= edit1.Text; h := BeginUpdateResource(pchar(AppPath),false); if h = 0 then ShowMessage('Error: ' + IntToStr(GetLastError) ) else begin UpdateResource(h,RT_VERSION,'ProductName',0,@s,SizeOf(s)); EndUpdateResource(h,false); end; end; wenn ich den obenstehenden code ausführe habe ich über der 1 noch ein item das ich anklicken kann... jetzt muss ich ja nurnoch wissen was ich an:
Delphi-Quellcode:
ändern muss...
UpdateResource(h,RT_VERSION,'ProductName',0,@s,SizeOf(s));
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz