Autor |
Beitrag |
IhopeonlyReader
      
Beiträge: 600
Erhaltene Danke: 23
Delphi 7 PE
|
Verfasst: So 20.05.12 19:29
Die Frage steht oben
Beschreibung: Ich möchte z.B. die Produktversion ändern
gibt es da direkt in Delphi die einstellungen zu, oder muss man das nach dem compilieren machen? wenn danach wie? Moderiert von Narses: Topic aus Sonstiges (Delphi) verschoben am So 20.05.2012 um 22:08
|
|
GuaAck
      
Beiträge: 378
Erhaltene Danke: 32
Windows 8.1
Delphi 10.4 Comm. Edition
|
Verfasst: So 20.05.12 19:44
Unter Project/Optionen kannst Du Beschreibungen und Versonsnummern (vor dem Compilieren) eintragen. (Jedenfalls bei Delphi 7 ist es da.)
Gruß GuaAck
Für diesen Beitrag haben gedankt: IhopeonlyReader
|
|
IhopeonlyReader 
      
Beiträge: 600
Erhaltene Danke: 23
Delphi 7 PE
|
Verfasst: So 20.05.12 19:56
GuaAck hat folgendes geschrieben : | Unter Project/Optionen kannst Du Beschreibungen und Versonsnummern (vor dem Compilieren) eintragen. (Jedenfalls bei Delphi 7 ist es da.)
Gruß GuaAck |
Vielen Dank  Das war zu einfach^^... immerhin gibt es jetzt ein Thread dazu und jeder Anfänger findet es sofort
Lösung (Delphi 7 PE):
- Öffne das Project, dessen Details du bearbeiten möchtest
- Gehe auf Project-Optionen und dann auf Versionsinfo
hier kannst du alles ändern 
|
|
IhopeonlyReader 
      
Beiträge: 600
Erhaltene Danke: 23
Delphi 7 PE
|
Verfasst: So 20.05.12 20:54
kann ich in etwas wie Formcreate darauf zugreifen? oder diese Details zur Laufzeit per Button ändern?
(also gibt es sowas wie Application.ProcessManager.Info(Produktversion,Dateiversion...)?)
_________________ Sucht "neueres" Delphi
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
|
|
Mathematiker
      
Beiträge: 2622
Erhaltene Danke: 1448
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: So 20.05.12 21:36
Hallo,
IhopeonlyReader hat folgendes geschrieben : | also gibt es sowas wie Application.ProcessManager.Info(Produktversion,Dateiversion...)? |
Nachfolgende Methode liefert (unter Delphi 5) die 4 Versionsnummern des Programms:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| function Sto_GetFmtFileVersion(const FileName: String;const Fmt: String): String; var iBufferSize: DWORD; iDummy: DWORD; pBuffer: Pointer; pFileInfo: Pointer; iVer: Array[1..4] of Word; begin Result := ''; iBufferSize := GetFileVersionInfoSize(PChar(FileName), iDummy); if (iBufferSize > 0) then begin GetMem(pBuffer, iBufferSize); try GetFileVersionInfo(PChar(FileName), 0, iBufferSize, pBuffer); VerQueryValue(pBuffer, '\', pFileInfo, iDummy); iVer[1] := HiWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionMS); iVer[2] := LoWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionMS); iVer[3] := HiWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionLS); iVer[4] := LoWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionLS); finally FreeMem(pBuffer); end; Result := Format(Fmt, [iVer[1], iVer[2], iVer[3], iVer[4]]); end; end; |
Beste Grüße
Mathematiker
|
|
IhopeonlyReader 
      
Beiträge: 600
Erhaltene Danke: 23
Delphi 7 PE
|
Verfasst: Mo 21.05.12 15:30
Ich suche nicht die Abfrage, sondern die Änderungsbefehle... Abfragen kann ich ja selbst über Details und dann ansehen, aber kann ich diese zur Laufzeit ändern?
_________________ Sucht "neueres" Delphi
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
|
|
Nersgatt
      
Beiträge: 1581
Erhaltene Danke: 279
Delphi 10 Seattle Prof.
|
Verfasst: Mo 21.05.12 15:32
Dann müsstest Du ja in der Exe schreiben. Das ist ja schon aus dem Grund eine sehr schlechte Idee, weil Du dafür i.d.R. Adminrechte bräuchtest.
_________________ Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
|
|
IhopeonlyReader 
      
Beiträge: 600
Erhaltene Danke: 23
Delphi 7 PE
|
Verfasst: Mo 21.05.12 15:47
Nersgatt hat folgendes geschrieben : | Dann müsstest Du ja in der Exe schreiben. Das ist ja schon aus dem Grund eine sehr schlechte Idee, weil Du dafür i.d.R. Adminrechte bräuchtest. |
Ja, ich habe nur bei meinem Project in formcreate die akutelle Version den Namen... ich finde es sehr umständlich für jede neue Version (ist inzwischen meine 30 Testversion kurz vor offenen Private-Freigabe  ) die Daten/Details zu ändern.
Ich würde dann die Details einmalig in Formcreate anpassen und diese so lassen (nur ändern, wenn die details anders sind)-> einmalig
_________________ Sucht "neueres" Delphi
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
|
|
Nersgatt
      
Beiträge: 1581
Erhaltene Danke: 279
Delphi 10 Seattle Prof.
|
Verfasst: Mo 21.05.12 15:51
_________________ Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
|
|
IhopeonlyReader 
      
Beiträge: 600
Erhaltene Danke: 23
Delphi 7 PE
|
Verfasst: Mo 21.05.12 15:54
Moderiert von Narses: Komplett-Zitat des letzten Beitrags entfernt.
Hochzählen möchte ich nicht, da ich bei Bufixes einfach von Alpha 1.8 auf 1.8.1 übergehe und bei kompletten erweiterungern direkt von 1.8 auf 1.9 übergehe.
Somit ist das einfach hochzählen nicht so toll. Aber scheinbar muss ich jedes mal per Hand alles erneuern
_________________ Sucht "neueres" Delphi
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 21.05.12 18:23
Ändern musst du es ja so oder so. Ob nun in FormCreate oder in den Projekteinstellungen. Der Aufwand an die Stelle des Quelltextes zu gehen oder in die Einstellungen ist ja nicht groß unterschiedlich. 
|
|
IhopeonlyReader 
      
Beiträge: 600
Erhaltene Danke: 23
Delphi 7 PE
|
Verfasst: Mo 21.05.12 18:36
_________________ Sucht "neueres" Delphi
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
|
|
Th69
      

Beiträge: 4798
Erhaltene Danke: 1059
Win10
C#, C++ (VS 2017/19/22)
|
Verfasst: Mo 21.05.12 18:44
Daher macht man es ja auch umgekehrt: ändere die Versionsnummer in den Projekteinstellungen und zeige diese dann in der Form an.
|
|
IhopeonlyReader 
      
Beiträge: 600
Erhaltene Danke: 23
Delphi 7 PE
|
Verfasst: Mo 21.05.12 18:58
Th69 hat folgendes geschrieben : | Daher macht man es ja auch umgekehrt: ändere die Versionsnummer in den Projekteinstellungen und zeige diese dann in der Form an. |
Die Versionsnunner besteht aus 4 zahlen, meine Versionsangabe aus 1 Wort und 2 bis 3 zahlen.. daher stimmt die Versionsnummer auch nicht ganz, da würde ich dann nur die 2/3 zahlen angeben.
Aber ich weiß was du meinst  finde ich aber genau so umständlich
_________________ Sucht "neueres" Delphi
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
|
|
Mathematiker
      
Beiträge: 2622
Erhaltene Danke: 1448
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Mo 21.05.12 21:41
IhopeonlyReader hat folgendes geschrieben : | Ich suche nicht die Abfrage, sondern die Änderungsbefehle... Abfragen kann ich ja selbst über Details und dann ansehen, aber kann ich diese zur Laufzeit ändern? |
In einer fertigen Exe Änderungen vornehmen?
Sehr gewagt! Da würde mein Virenprogramm aber sofort Alarm schlagen.
Beste Grüße
Mathematiker
|
|
IhopeonlyReader 
      
Beiträge: 600
Erhaltene Danke: 23
Delphi 7 PE
|
Verfasst: Mo 21.05.12 23:22
Moderiert von Narses: Komplett-Zitat des letzten Beitrags entfernt.
Es soll nur bearbeitet werden, wenn die Details nicht schon so sind wie sie sein sollten. Also werden sie nur beim ersten mal geändert. Das wäre dann bei mir auf dem pc. Bei dem verschicken an den enduser werden die Details mit übernommen und somit wird meine Änderung gar nicht mehr vorgenommen und somit schlägt auch kein virenprogramm alarm
_________________ Sucht "neueres" Delphi
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
|
|
IhopeonlyReader 
      
Beiträge: 600
Erhaltene Danke: 23
Delphi 7 PE
|
Verfasst: Sa 26.05.12 23:38
Und es ist toll, dass dein Virenprogramm / Firewall da alarm schlägt Mathematiker^^  wäre sonst auch doof
Aber wäre nett, wenn du nicht nur sagst, "geht aber ist nicht so gut, denn..", sondern würde ich schon gerne wissen mit welchen Befehlen man die Details meiner eigenen Exe ändern kann
_________________ Sucht "neueres" Delphi
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
|
|
Mathematiker
      
Beiträge: 2622
Erhaltene Danke: 1448
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: So 27.05.12 08:51
Hallo IhopeonlyReader,
IhopeonlyReader hat folgendes geschrieben : | ... würde ich schon gerne wissen mit welchen Befehlen man die Details meiner eigenen Exe ändern kann |
Mit gar keinem Befehl! Ist die Exe im Rechner aktiv, kannst Du so und so nichts ändern, läuft sie nicht, brauchst Du ein externes Programm. Erst vor wenigen Tagen hast Du selbst in einem anderen Beitrag auf den Reshacker hingewiesen. Damit geht's.
Ansonsten bleibe ich dabei: Man sollte keine "fertige" Exe ändern. Die Versionsnummer in den Projekteinstellungen ändern und Neucompilieren ist besser; und man umgeht allen Stress.
Beste Grüße
Mathematiker
Nachtrag: Ich habe gerade unter msdn.microsoft.com/ gesucht, ob irgendeine Möglichkeit besteht, die Versionsnummer während der Laufzeit zu ändern. Microsoft schweigt sich aus! Entweder geht es nicht oder es ist "geheim".
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 27.05.12 09:41
Theoretisch geht es mit UpdateResource:
msdn.microsoft.com/e...648049(v=vs.85).aspx
Das sollte auch gehen, wenn die Datei geladen ist, siehe Doku: Zitat: | It is recommended that the resource file is not loaded before this function is called. However, if that file is already loaded, it will not cause an error to be returned. |
Ich habe auch ein Projekt mit dem ich Daten an die eigene Exe anhängen kann. Mit dem Trick (eigene Exe umbenennen und eine Kopie an die Stelle kopieren, dann diese ändern) funktioniert es auch mit UpdateResource sicher.
www.delphi-forum.de/...?t=89659&start=0
Trotzdem: Empfehlenswert ist es in keinem Fall. Erstens braucht man im eigenen Vrzeichnis in der Regel Adminrechte und zweitens mögen das Virenscanner wie schon geschrieben auch nicht.
Für diesen Beitrag haben gedankt: Mathematiker
|
|
IhopeonlyReader 
      
Beiträge: 600
Erhaltene Danke: 23
Delphi 7 PE
|
Verfasst: So 27.05.12 11:06
okay, also ich fassse mal zusammen:
- bei laufender Exe (eigentlich) nicht möglich
- Virenprogramme schlagen Alarm
Vörschläge:
- Programme
- Reshacker
- UpdateResource
- In Delphi direkt vor jedem Compilieren ändern
Fazit:
Ich denke ein extra Programm dafür ist nicht notwendig, da es mit Delphi selbst machbar ist.
Jedoch ist es in den Delphi Einstellungen nicht möglich unter Dateiversion Buchstaben oder weniger als 4 Zahlen anzugeben (zumindest bei Delphi 7PE).
Beispiel:
Ich möchte die Versionsnummer meiner EXE zu Alpha 1.9 ändern.
- Per Delphi: 1.9.0.0
- Reshacker: Lässt sich ebenfalls alles "gut" ändern, jedoch ist es hier ebenfalls nicht möglich in die Fileversion auf weniger als 4 Zahlen zu beschränken
-> Delphi oder Reshacker, beides hat den selben Effekt, jedoch ist brauch man in Delphi nichts zusätzlich installieren.
Ich werde mich wohl damit zufrieden geben müssen, dass eine Versionsnummer aus 4 Zahlen besteht... (Und keine Wörter wie Alpha reingehören.. Diese gehören zur Productversion)
...Jaenicke, was macht das UpdateResource Programm denn? Welcher Unterschied zum Reshacker liegt vor?
_________________ Sucht "neueres" Delphi
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
|
|