Exe Informationen ändern
Exe Informationen ändern
kenn jemand vll ein Snippet das es fertig bringt die Informationen einer Exe zu ändern? (wie Produktname, Version, Copyright etc)
ich habe zwar das hier gefunden: http://www.purebasic.fr/german/viewtopi ... 8&start=10 allerdings funktioniert es in keiner weise.
lg
ich habe zwar das hier gefunden: http://www.purebasic.fr/german/viewtopi ... 8&start=10 allerdings funktioniert es in keiner weise.
lg
Re: Exe Informationen ändern
Verwende einfach einen Resource Editor. Ich benutze gerne XNResourceEditor.
"Menschenskinder, das Niveau dieses Forums singt schon wieder!" — GronkhLP ||| "ich hogffe ihr könnt den fehle endecken" — Marvin133 ||| "Ideoten gibts ..." — computerfreak ||| "Jup, danke. Gruss" — funkheld
Re: Exe Informationen ändern
Externe Anwendungen sind völlig ausgeschlossen, da mein Programm exe Dateien ausspuckt.
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
Re: Exe Informationen ändern
Suche nach Begin-/ EndUpdateResource() im SDK bzw. hier im Forum.
Windows 10 Pro, 64-Bit / Outtakes | Derek
Re: Exe Informationen ändern
danke, das hat mir schonmal geholfen nur..
das was ich gefunden hab ist der selbe code nur etwas kürzer.. welcher bei mir aber auch nicht funktioniert. Mit und ohne Voreintragung von den Infos. Vll veralteter Code? Verwende PB 4.60 32bit
das was ich gefunden hab ist der selbe code nur etwas kürzer.. welcher bei mir aber auch nicht funktioniert. Mit und ohne Voreintragung von den Infos. Vll veralteter Code? Verwende PB 4.60 32bit
Code: Alles auswählen
#RT_VERSION = 16
Structure VS_VERSIONINFO
wLength.w
wValueLength.w
wType.w
szKey.w[16]
Padding1.w
Value.VS_FIXEDFILEINFO
Padding2.w
Children.w
EndStructure
Procedure.w MakeLangID(p.w, s.w)
ProcedureReturn (s << 10) | p
EndProcedure
Macro MAKEINTRESOURCE(I)
(I)
EndMacro
Procedure.l SetFileVersion(AFileName.s, Major.w, Minor.w, Release.w, Build.w)
Protected lHLib.l, lHRes.l, lHResLoad.l, lPResLock.l
Protected lSz.l
Protected lFS.l
Protected *lpVersionInfo.VS_VERSIONINFO
Protected *lFV.l ; TFileVer
Protected lPt.l
Protected lVer.s
Protected lVarFileInfo ; Unknown type
Protected lHResUpd.l
Protected lDiscard.l
Protected Result.l
Result = 0
If FileSize(AFileName) < 0
ProcedureReturn Result
EndIf
lHLib = LoadLibrary_(AFileName)
If lHLib = 0
ProcedureReturn Result
EndIf
lHRes = FindResource_(lHlib, MAKEINTRESOURCE(1), #RT_VERSION)
If lHRes = 0
FreeLibrary_(lHLib)
ProcedureReturn Result
EndIf
lHResLoad = LoadResource_(lHLib, lHRes)
lSz = SizeofResource_(lHLib, lHRes)
If lHResLoad = 0
FreeLibrary_(lHLib)
ProcedureReturn Result
EndIf
LPResLock = LockResource_(lHResLoad)
lPt = AllocateMemory(lSz)
MoveMemory(lPResLock, lPt, lSz)
FreeLibrary_(lHLib)
*lpVersionInfo = lPt
With *lpVersionInfo\Value
\dwFileVersionMS = (Major << 16) | Minor
\dwFileVersionLS = (Release << 16) | Build
\dwProductVersionMS = \dwFileVersionMS
\dwProductVersionLS = \dwFileVersionLS
EndWith
lHResUpd = BeginUpdateResource_(AFilename, 0)
If lHResUpd = 0
Goto Except
EndIf
lDiscard = 1
lDiscard = -UpdateResource_(lHResUpd, #RT_VERSION, MAKEINTRESOURCE(1), 0, lPt, lSz) + 1
EndUpdateResource_(lHResUpd, lDiscard)
Except:
FreeMemory(lPt)
EndProcedure
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Exe Informationen ändern
Adminrechte und die Exe darf natürlich nicht gestartet sein.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Exe Informationen ändern
Halbwegs Offtopic:
Also wenn wir bereits beim Thema Ändern von Meta-Informationen der Executable sind: Ist euch eine ähnliche Funktion wie BeginUpdateResource_() für das eingebundene Manifest bekannt?
Also wenn wir bereits beim Thema Ändern von Meta-Informationen der Executable sind: Ist euch eine ähnliche Funktion wie BeginUpdateResource_() für das eingebundene Manifest bekannt?
"Menschenskinder, das Niveau dieses Forums singt schon wieder!" — GronkhLP ||| "ich hogffe ihr könnt den fehle endecken" — Marvin133 ||| "Ideoten gibts ..." — computerfreak ||| "Jup, danke. Gruss" — funkheld
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Exe Informationen ändern
Es ist genau dieselbe API zu verwenden, lediglich die Parameter ändern sich.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Exe Informationen ändern
selbst mit Admin-Rechte ändert sich nichts. Ausgeführt wird die zu ändernde Datei natürlich nicht
Re: Exe Informationen ändern
@ts-soft
Danke. Nachdem ich die Frage gestellt hatte viel mir bereits auf, dass es auch eine #RT_MANIFEST-Konstante gibt. Die Antwort lag somit auf der Hand.
@cOoki3druqs
Eventuell liegt es an diesen merkwürdigen Zeilen (ganz unten) :
Danke. Nachdem ich die Frage gestellt hatte viel mir bereits auf, dass es auch eine #RT_MANIFEST-Konstante gibt. Die Antwort lag somit auf der Hand.
@cOoki3druqs
Eventuell liegt es an diesen merkwürdigen Zeilen (ganz unten) :
Code: Alles auswählen
lDiscard = 1
lDiscard = -UpdateResource_(lHResUpd, #RT_VERSION, MAKEINTRESOURCE(1), 0, lPt, lSz) + 1
; Hilft diese Änderung?
If UpdateResource_(lHResUpd, #RT_VERSION, MAKEINTRESOURCE(1), 0, lPt, lSz)
lDiscard = #False
Else
lDiscard = #True
EndIf"Menschenskinder, das Niveau dieses Forums singt schon wieder!" — GronkhLP ||| "ich hogffe ihr könnt den fehle endecken" — Marvin133 ||| "Ideoten gibts ..." — computerfreak ||| "Jup, danke. Gruss" — funkheld