![]() |
UpdateResource - Die akt. laufende Exe ändern ?
Hi,
ist es möglich mit UpdateResource die akt. laufende Exe zu ändern ? Leider habe ich noch nichts erreichen können. Wer kann helfen ?
Delphi-Quellcode:
// var
// sztSettings: array [0..7] of Char = ('1','0','0','0','0','0','0','0'); procedure TFormX.SaveSettings; var hLib, hUpdate, hRes: THandle; function LastErrorMsgStr: String; var szerror: array [0..255] of Char; begin FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, nil, GetLastError(), 0, szError, sizeof(szError), nil); Messagebox(0, szerror, '', 0); end; function MAKELANGID(const usPrimaryLanguage : WORD;const usSubLanguage : WORD) : WORD; begin Result := (usSubLanguage shl 10) or usPrimaryLanguage; end; begin hUpdate := BeginUpdateResource(PChar(ParamStr(0)), BOOL(FALSE)); if hUpdate > 0 then begin if not UpdateResource( hUpdate, RT_STRING, MAKEINTRESOURCE(1), MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), @sztSettings, 7) then LastErrorMsgStr; if not EndUpdateResource(hUpdate, BOOL(FALSE)) then LastErrorMsgStr; end; end; |
Re: UpdateResource - Die akt. laufende Exe ändern ?
Nein glaub nicht.
|
Re: UpdateResource - Die akt. laufende Exe ändern ?
Hmpf.... dachte ich mir. Ein "normales"-Schreiben (seek & write) klappt aber.
:gruebel: |
Re: UpdateResource - Die akt. laufende Exe ändern ?
Der Prozess rennt ja, also ist er zu dem Zeitpunkt nicht beschreibbar, erst wenn du ihn wieder schließt kannst du ihn beschreiben.
|
Re: UpdateResource - Die akt. laufende Exe ändern ?
das wäre 'ne Möglichkeit
exe sich selbst in das temoräre verzeichnis kopieren lassen exe im tempverzeichnis starten sich selbst beenden dann ist die exe frei und kann geändert werden dann wieder die "richtige" exe starten sich wiederrum selbst (die kopie) beenden kopie im tempverzeichnis löschen es gibt aber anscheinend noch 'ne Möglichkeit das Handle auf die EXE freizugeben, sodaß die Datei dann frei ist und geändert werden könnte, aber wie weiß ich auch nicht mehr (bin aber grad auf der Suche nach 'nem Code welcher dieses macht ... falls ich ihn finde versuch ich mich zu melden ... wenn ich's nich vergessen ._.) |
Re: UpdateResource - Die akt. laufende Exe ändern ?
Zitat:
Bsp: http://assarbad.net/stuff/!export/delphi_deleteself.txt http://assarbad.net/stuff/!export/c_deleteself.txt http://assarbad.net/stuff/!export/delself.exe |
Re: UpdateResource - Die akt. laufende Exe ändern ?
Och menno, wie können die nur :wall:
denn für einige Dinge wäre das doch recht prakisch gewesen. z.B. SFX-Archive und Co. hmmm?, "nur bis XP" und "ab XP nicht mehr" wiederspricht sich aber etwas :gruebel: [add] OK, Letzteres stimmt dann wohl (laut delphi_deleteself.txt) [/add] Na ja, dann bleibt zumindestens noch die Möglichkeit über eine Kopie (solange das nicht auch noch verboten wird) :angel: |
Re: UpdateResource - Die akt. laufende Exe ändern ?
Zitat:
|
Re: UpdateResource - Die akt. laufende Exe ändern ?
Moin Zusammen,
ich hab' letztens etwas dazu bei ![]() Allerdings weiss ich nicht, ob dies XP mit eingeschlossen hat. |
Re: UpdateResource - Die akt. laufende Exe ändern ?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:40 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-2025 by Thomas Breitkreuz