Autor Beitrag
IhopeonlyReader
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 600
Erhaltene Danke: 23


Delphi 7 PE
BeitragVerfasst: 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 user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am So 20.05.2012 um 22:08
GuaAck
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 378
Erhaltene Danke: 32

Windows 8.1
Delphi 10.4 Comm. Edition
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 600
Erhaltene Danke: 23


Delphi 7 PE
BeitragVerfasst: So 20.05.12 19:56 
user profile iconGuaAck hat folgendes geschrieben Zum zitierten Posting springen:
Unter Project/Optionen kannst Du Beschreibungen und Versonsnummern (vor dem Compilieren) eintragen. (Jedenfalls bei Delphi 7 ist es da.)

Gruß GuaAck

Vielen Dank :D Das war zu einfach^^... immerhin gibt es jetzt ein Thread dazu und jeder Anfänger findet es sofort :D

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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 600
Erhaltene Danke: 23


Delphi 7 PE
BeitragVerfasst: 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 :D
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1448

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: So 20.05.12 21:36 
Hallo,
user profile iconIhopeonlyReader hat folgendes geschrieben Zum zitierten Posting springen:
also gibt es sowas wie Application.ProcessManager.Info(Produktversion,Dateiversion...)?

Nachfolgende Methode liefert (unter Delphi 5) die 4 Versionsnummern des Programms:
ausblenden 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..4of Word;
begin
  Result := '';
  iBufferSize := GetFileVersionInfoSize(PChar(FileName), iDummy);
  if (iBufferSize > 0then
  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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 600
Erhaltene Danke: 23


Delphi 7 PE
BeitragVerfasst: 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 :D
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 600
Erhaltene Danke: 23


Delphi 7 PE
BeitragVerfasst: Mo 21.05.12 15:47 
user profile iconNersgatt hat folgendes geschrieben Zum zitierten Posting springen:
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 :D
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Mo 21.05.12 15:51 
user profile iconIhopeonlyReader hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconNersgatt hat folgendes geschrieben Zum zitierten Posting springen:
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.


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.

Du kannst die Buildnummer automatisch hochzählen lassen (das macht dann die IDE für Dich) um so Deine Testversionen unterscheiden zu können. Für ein Release passt man die Infos aber selbst an. Das macht man ja eher selten.

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
IhopeonlyReader Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 600
Erhaltene Danke: 23


Delphi 7 PE
BeitragVerfasst: Mo 21.05.12 15:54 
Moderiert von user profile iconNarses: 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 :D
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 600
Erhaltene Danke: 23


Delphi 7 PE
BeitragVerfasst: Mo 21.05.12 18:36 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Ä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. ;-)


Da ich sie aber in Formcreate jetzt schon immer ändere (für anzeigelabels...) wäre das kein zusatzaufwand

_________________
Sucht "neueres" Delphi :D
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4798
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 600
Erhaltene Danke: 23


Delphi 7 PE
BeitragVerfasst: Mo 21.05.12 18:58 
user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
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 :D
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1448

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Mo 21.05.12 21:41 
user profile iconIhopeonlyReader hat folgendes geschrieben Zum zitierten Posting springen:
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 600
Erhaltene Danke: 23


Delphi 7 PE
BeitragVerfasst: Mo 21.05.12 23:22 
Moderiert von user profile iconNarses: 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 :D
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
IhopeonlyReader Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 600
Erhaltene Danke: 23


Delphi 7 PE
BeitragVerfasst: Sa 26.05.12 23:38 
Und es ist toll, dass dein Virenprogramm / Firewall da alarm schlägt Mathematiker^^ :) wäre sonst auch doof :D

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 :D
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1448

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: So 27.05.12 08:51 
Hallo IhopeonlyReader,
user profile iconIhopeonlyReader hat folgendes geschrieben Zum zitierten Posting springen:
... 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 600
Erhaltene Danke: 23


Delphi 7 PE
BeitragVerfasst: 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 :D
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!