| Autor |
Beitrag |
LonghornUser
      
Beiträge: 796
|
Verfasst: 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
      
Beiträge: 226
Erhaltene Danke: 7
|
Verfasst: Sa 24.10.09 12:50
nonVCL sollte die (halt nicht ganz so mal eben zu realisierende) Lösung sein.
|
|
LonghornUser 
      
Beiträge: 796
|
Verfasst: 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
      
Beiträge: 226
Erhaltene Danke: 7
|
Verfasst: 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 
      
Beiträge: 796
|
Verfasst: 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
|
Verfasst: 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 
      
Beiträge: 796
|
Verfasst: 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
      
Beiträge: 19336
Erhaltene Danke: 1751
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 24.10.09 15:03
Warum benutzt du denn nicht den Parameter /s, damit die Abfrage erst gar nicht kommt?
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 
      
Beiträge: 796
|
Verfasst: Sa 24.10.09 15:07
|
|
jaenicke
      
Beiträge: 19336
Erhaltene Danke: 1751
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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 
      
Beiträge: 796
|
Verfasst: Sa 24.10.09 15:09
Das wäre auch ne Idee, aber so funzt es auch 
|
|
turboPASCAL
      
Beiträge: 193
Erhaltene Danke: 1
Win XP / Vischda
D6 PE / D2005 PE
|
Verfasst: 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...
|
|