Autor Beitrag
LonghornUser
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 796



BeitragVerfasst: Sa 24.10.09 12:26 
Hallo,

ich möchte ein Programm bauen, welches nur 1 Aufgabe hat: Einen Schlüssel zur Registry (speziell HKEY_LOCAL_MACHINE), abhängig von einem ItemIndex einer Combobox, hinzufügen.

Wenn ich das auf die schnelle umsetze, ist die erzeugte EXE ja doch noch relativ groß (ich benutze Delphi 2010). Wie kann ich unbenutzte Units ausklammern bzw. ganz allgemein die Dateigröße senken?

Vielen Dank!

Ciao LHUser
Tryer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 226
Erhaltene Danke: 7



BeitragVerfasst: Sa 24.10.09 12:50 
nonVCL sollte die (halt nicht ganz so mal eben zu realisierende) Lösung sein.
LonghornUser Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 796



BeitragVerfasst: Sa 24.10.09 12:58 
Und ich kann nicht einfach irgendwie in Delphi auswählen, welche Units nicht mit eingebunden werden sollen? Würde sich nur noch die Frage stellen, wie ich herausbekomme, welche Units ich für mein Vorhaben brauche, und welche nicht.
Tryer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 226
Erhaltene Danke: 7



BeitragVerfasst: Sa 24.10.09 13:09 
Klar kannst Du das, Du kannst die nicht beötigten Unit´s aus der uses-Klausel rausschmeissen. Nur ohne "Forms" keine Fenster, keine TCombobox. Und mit Forms: groß.
Um ohne die Unit Forms visuelle Komponenten zu erzeugen arbeitet man "nonVcl", was im Tutorial von Assabad beschrieben ist.
Die Frage ist ob es nicht reicht einige wenige ".reg"-Dateien anzulegen aus denen man dann die passende starten kann (also ganz ohne Delphi). Oder ob es auch eine Konsolenanwendung tut (WriteLn('1. bla, 2.blub, Bitte "1" oder "2" tippen')..).

Es gibt auch "ExePacker", aber ich würde im Zusammenhng mit Registry-Zugriffen erwarten das da ggf. AV-Programme ansprechen.
LonghornUser Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 796



BeitragVerfasst: Sa 24.10.09 13:52 
Mhm, das mit der *.reg-Datei könnte man versuchen. Das Programm würde dann einfach entsprechende *.reg-Dateien erzeugen und diese dann ausführen.

Ich werde das nachher mal ausprobieren. Danke für den Tipp ;)
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 24.10.09 13:55 
Die Dickmacher sind die Units Forms und Classes. wenn du kein Fenster brauchst, da mach doch eine Konsolenanwnedung. Je nach Funktionalität braucht man da gar keine zusätzlichen Units oder höchstens die Units Windows und SysUtils. Und um ein paar Statusmeldungen auszugeben, reicht ja eine Konsolenanwendung.
LonghornUser Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 796



BeitragVerfasst: Sa 24.10.09 14:59 
Also ich habe es jetzt so gemacht, dass ich regedit.exe mit meiner erzeugten temporären *.reg-Datei als Parameter aufrufe. Dies mache ich über ShelLExecute_AndWait(), was ich brauche, damit ich nach der Registry-Ja/Nein-Abfrage, überprüfen kann, ob der User nun zugestimmt oder abgelehnt hat.

An sich eine sehr schöne Lösung im Vergleich zu einer neuen platzfressenden Anwendung. :)

Nur eines, was mir noch aufgefallen ist: Kann es sein, dass D2010-Anwedungen doch recht viel mehr Platz benötigen als solche von D2009?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19336
Erhaltene Danke: 1751

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 24.10.09 15:03 
Warum benutzt du denn nicht den Parameter /s, damit die Abfrage erst gar nicht kommt? :gruebel:

Und wenn du doch ein Programm hast: Dann kannst du auch direkt auf die Registry zugreifen, dadurch wird das Programm auch nicht wirklich größer.

Wenn es wirklich unbedingt so klein sein muss (warum?!?), wäre C# oder C++ auch denkbar, denn die Exe-Dateien sind dann deutlich kleiner auch mit Formularen.
LonghornUser Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 796



BeitragVerfasst: Sa 24.10.09 15:07 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:

Und wenn du doch ein Programm hast: Dann kannst du auch direkt auf die Registry zugreifen, dadurch wird das Programm auch nicht wirklich größer.

Es geht darum, dass ich Werte in HKEY_LOCAL_MACHINE schreiben will mit einem Programm, dass außer dieser Aktion keinerlei Adminrechte braucht. Und da ich dem User nicht aufbürden will, die Software immer als Admin zu starten (was zu immer wiederkehrenden UAC-Abfragen führte), suchte ich nach einer Lösung, aus meinem Programm (was nicht als Admin ausgeführt wurde) das Schreiben in die Registry trotzdem zu machen.
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Warum benutzt du denn nicht den Parameter /s, damit die Abfrage erst gar nicht kommt? :gruebel:

Das geht :oops: ? Mhm, das wäre natürlich ne Idee ;)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19336
Erhaltene Danke: 1751

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 24.10.09 15:08 
Starte doch einfach die eigene Exe mit Adminrechten und übergib die durchzuführenden Aktionen als Parameter oder via IPC. Genauso arbeitet auch mein in die Exe integrierter Updater.
LonghornUser Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 796



BeitragVerfasst: Sa 24.10.09 15:09 
Das wäre auch ne Idee, aber so funzt es auch ;)
turboPASCAL
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 193
Erhaltene Danke: 1

Win XP / Vischda
D6 PE / D2005 PE
BeitragVerfasst: Sa 24.10.09 20:00 
Schicker wärs so:
Einloggen, um Attachments anzusehen!
_________________
Nein, ich bin nicht der turboPASCAL aus der DP, ich seh nur so aus... :P