Seite 2 von 3
Verfasst: 10.06.2009 16:55
von ts-soft
Da sich am Resourcen-Format nichts geändert hat, verstehe ich den Aufwand
nicht so ganz. ResHacker aktzeptiert zwar die 64-Bit DLL nicht, aber nur weil
er den PE-Header nicht akzeptiert. Mit anderen Tools wie z.B. XN Resource
Editor kann ich die Resource (WAVE / 5051 / English USA) problemlos
bearbeiten.
Aber mit der Faust durchs Auge ist natürlich lustiger

Verfasst: 10.06.2009 17:10
von gekkonier
Naja, immerhin kann man den Startsound ja auch deaktivieren *g*
Am besten wäre es du machst das... nämlich abdrehen.
Dann könntest du dir mit Purebasic

einen wav Player ohne Gui und Schnickschnack bauen und den in die Autostart klopfen...
Kannst dir wenigstens nichts zerbröseln...
Stell dir mal vor diese jene Datei wird beim übernächsten Patch geändert..... hast schon wieder den Mist vor dir...
Verfasst: 10.06.2009 17:33
von Max_der_Held
Stell dir mal vor diese jene Datei wird beim übernächsten Patch geändert..... hast schon wieder den Mist vor dir...
o_O!! bring sie nicht auf dumme Gedanken!
XN Resource
Editor
LOL sag das doch gleich!

jetzt is's fast zu spät^^ und ich schaufel da mühsam haufenweise zeilen hin und her.. pfft ^^ :P

allerdings habe ich gerade zweierlei bemerkt..
die neue Sounddatei (tagessschau-start ^^

) muss, wenn ich es über den hex-editor mache( was ich gemacht habe) genau so groß sein wie die alte datei, der rest wird einfach nicht erkannt.. vermutlich wegen irgendeinem ressource-header oder so.. (k.a.)
und wenn ich jetzt den XD Resource Editor hernehme, kommt beim speichern eine "Error System. Code 50" meldung -> kann nicht gespeichert werden..?
Verfasst: 10.06.2009 17:44
von ts-soft
Vielleicht besorgste Dir mal das Resource-Format von Wotsit.org oder
ähnlich.
Der Header enthält neben Namen auch die größe der Resource usw.
Desweiteren muß die Größe der Wave erweitert werden mit 0 Bytes, so das
es durch 4 glatt teilbar ist.
Glaub zwar nicht das der Quatsch den Aufwand wert ist, aber das mußt Du
selber entscheiden. Im CodeArchiv ist auch ein Beispiel, wie man eine
Resource austauscht, falls der XN-Resource Editor das nicht kann.
Geht im CodeArchiv zwar um die Manifest-Datei, aber das spielt keine Rolle,
die API ist dieselbe.
Verfasst: 10.06.2009 17:45
von ZeHa
Max_der_Held hat geschrieben:die neue Sounddatei (tagessschau-start ^^

) muss, wenn ich es über den hex-editor mache( was ich gemacht habe) genau so groß sein wie die alte datei, der rest wird einfach nicht erkannt.. vermutlich wegen irgendeinem ressource-header oder so.. (k.a.)
Ähhhhhhhhh... das sollte doch selbstverständlich sein??
Oder ist die WAV-Datei die letzte Ressource in der DLL?
Verfasst: 10.06.2009 17:58
von ts-soft
Ich denke mal, ausser Resourcen ist da nichts in der DLL, also einfach alle
Resourcen Extrahieren, dafür kannste auch den ResourceHacker nehmen,
nimmste einfach die 32-Bit Version, Resourcen sollten identisch sein, gggfs
sind kl. Anpassungen nötig.
Mit Porc zur *.res compilieren und dann in PB x64 eine DLL erstellen, die
lediglich die Resourcen importiert.
Probleme könnte höchstens die MUI Resource machen, den Typ kenne ich
nicht. Aber wenn Porc das 1:1 übernimmt, sollte das gehen.
Verfasst: 10.06.2009 21:02
von Max_der_Held
JAH!

^^
XD. haha

wisst ihr, wie ich's jetzt zuletzt gemacht hab?
Also: Behauptung: irgendwo muss die größe der kompletten Wave-ressource ja stehen. (irgend eine variable in der großen DLL)
Plan: diese ändern!
Also: einfach die tatsächliche Größe der Wave-datei von windows ( also diese 80.. +

in hexadezimal "übersetzt" mit diesem in windows-rechner (calc) eingeben und dann auf hexdrücken [danke auch noch für den Tip

]
dann im Hex-editor gesucht (im Editor sind die bytes ja andersrum, also "2C700D00" statt 000D802C)
Und das dann mit der neuen Größe der neuen Wav-datei ersetzt XD.
die mit hex-editor veränderte Datei dann auf D:\ geworfen, neustart, benutzerrechte ändern, alte dll löchen, neue einfügen, wieder neustart und.. JA! es geht
Danke, für die Hilfe

Hab einiges gelernt auch was das Dateien-verständnis angeht.
und, um meinen neuen Systemstart-sound zu bewundern

:
Nur Anfang; ohne Stimme
ps: kurze stellungname :P ^^;)
Ähhhhhhhhh... das sollte doch selbstverständlich sein??
Oder ist die WAV-Datei die letzte Ressource in der DLL?
Nö, isset nicht

ich überschreibe den Rest ja nicht, ich verschiebe ihn nur

Verfasst: 10.06.2009 21:23
von ZeHa
Max_der_Held hat geschrieben:ps: kurze stellungname :P ^^;)
Ähhhhhhhhh... das sollte doch selbstverständlich sein??
Oder ist die WAV-Datei die letzte Ressource in der DLL?
Nö, isset nicht

ich überschreibe den Rest ja nicht, ich verschiebe ihn nur

Okay aber DANN kommt es drauf an wie die Resource-Dateien aufgebaut sind. Haben die eine Art Inhaltsverzeichnis? Wenn ja, muß man dort halt alle Folgeadressen für die weiteren Ressourcen anpassen. Hab aber grad keine Ahnung wie die genau aufgebaut sind.
Verfasst: 10.06.2009 21:27
von ts-soft
Anhand des Headers einer Resource kann man zu nächsten Springen. Sind
also aufeinanderfolgend. Wenn Max_der_Held jetzt auch das Alignment be-
rücksichtigt hat, also auffüllen mt 0 Bytes bis glatt durch 4 teilbar sollte es
funktionieren. Ansonsten sind die anderen Resourcen zwar noch vorhanden,
aber unauffindbar.
Verfasst: 10.06.2009 21:46
von Max_der_Held
hm. also funktionieren tut alles einwandfrei.
Ich hab ja eine backupdatei gelassen; alle daten sind komplett gleich und komplett fehlerlos+erkannt..
aber vielleicht ist es zufällig tatsächlich die letzte ressource.. (auch wenn danach noch einiges an hex-code in der dll ist..? .. )
jedenfalls weis ich dafür leider noch zu wenig über diesen Header usw.
möglich wäre es,dass das Ganze wie ein "kettenmaß" funktioniert (ich hätt's so gemacht.) also, dass er nur die Größen der daten hat, nicht die positionien. das kanner sich ja dann selber ausrechnen. ansonsten wäre es ja ein unding, wenn man beim ressourcenänern dauernd die Positionen der nachfolgenden daten neuberechnen muss ^^..
und: dann wäre wohl die Größe der Wave-datei nicht in der dll gestanden, da sie ja überflüssig gewesen wäre
also, ist vermutlich kettenmaß, nicht reihenmaß (wie man in cad sagen würde)
aber: k.a. ^^ es geht halt !

(getestet mit XN Resource Editor)