Delphi-PRAXiS
Seite 5 von 7   « Erste     345 67      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Batch Edit 1.6 (Editor für Batchdatein / NT-Befehlsscripte) (https://www.delphipraxis.net/32991-batch-edit-1-6-editor-fuer-batchdatein-nt-befehlsscripte.html)

dizzy 1. Nov 2004 01:48

Re: batch edit 1.0 (editor für batchdatein / nt-befehlsscrip
 
Hab ich, hab ich. Aber ich werde, wie gesagt, daraus nicht schlau. Um was zu verwalten? Die Fenster im Programm? Nur die Vorschaufenster? Und egal was von diesen - eine DB ist schon ein ganz schön dicker Schinken...

Harry M. 1. Nov 2004 02:01

Re: batch edit 1.0 (editor für batchdatein / nt-befehlsscrip
 
mi knapp etwas über 20 kb im installationsverzeichnis. is nich so fett. ic fand es einfach praktisch alles mit eins zwei maus klicks verwalten zukönnen.

MathiasSimmack 1. Nov 2004 08:07

Re: batch edit 1.0 (editor für batchdatein / nt-befehlsscrip
 
Okay, dann will ich auch mal --

1. Die Datenbank. Ich sehe es wie meine Kollegen hier. So ganz verstanden habe ich deine Ausführungen nicht. Ich hatte kurzzeitig angenommen, diese Datenbank enthält vllt. ein paar fertige Templates oder Code-Schnippsel, die man möglicherweise beim Schreiben von BAT-Dateien häufiger brauchen könnte. Eine Parameterabfrage, bspw.
Aber die könnte man auch anderweitig realisieren. Vllt. in einem Klartextformat wie XML, so dass der User auch eigene Codefragmente einfügen kann. Oder halt ein Textformat. Okay, Luckie hatte kürzlich irgendwo kritisiert, dass viele kleine Dateien an sich zwar eben nicht groß sind, aber eben auf dem Datenträger etwas mehr Platz einnehmen. Kommt ja immer auf das Format (FAT, NTFS) an. Aber das wäre mir lieber als eine Datenbank, deren Sinn offenbar keiner so richtig verstanden hat. Sorry.

2. Syntaxhighlighting. Ein Link: [dp]"SynEdit"[/dp].

3. Setup. Ich persönlich habe nichts gegen Setups. :) Aber wenn dein Programm an sich nur 1 MB groß ist, dann werden wohl schätzungsweise noch ein paar Engines reingepackt. Benutzt du zufällig die Microsoft Installer-Version von Install Shield? Wenn Ja, dann versuche mal auf ein komplettes Setup mit den beiden Redistributables für 9x/ME und NT/2000/XP zu verzichten und erstelle nur ein Setup mit deinem Programm. Sollte der Anwender tatsächlich eine zu alte Version des Microsoft Installers haben, muss er sich die aktuelle Version eben selbst besorgen.
Alternativen: [dp]"Inno Setup"[/dp] oder Hier im Forum suchenNSIS. Mit denen kann man auch Setups gestalten. IMHO bieten sie alles was nötig ist. Aber sie sind eben nicht auf den Microsoft Installer oder eine andere Engine angewiesen und sind dadurch meist etwas kleiner.
Okay, damit darfst du aber offiziell keine Datenbanken ausliefern, die Borlands BDE benutzen. Und damit wären wir wieder bei Punkt #1. ;)

btw:
Zitat:

aber ich packe dan dann mal mit upx nicht mit rar. vielleicht wird es ja dann kleiner.
Du kannst es versuchen, aber ich glaube nicht daran. Setups komprimieren die Dateien ja auch. Und eine bereits gepackte Datei lässt sich in der Regel ein zweites Mal schlechter bis gar nicht mehr packen. So gesehen dürfte sich an der Größe des Setups nicht allzu viel ändern.

4. Registry. Ich hätte mir gern einen kurzen Auszug aus deinem Setup gewünscht, bei dem ich sehe, was genau verändert wird. Oder du schreibst noch mal, was dein Setup warum verändert. Aber nicht wie ein Politiker drum herum reden, sondern Klartext! ;)

Ich hab´s dir im DF gesagt: Wenn du für deinen Editor einen eigenen Eintrag anlegst, dann ist das okay. Aber wenn du einen Originaleintrag überschreibst, dann ist das für mich nicht okay. Und da reicht es auch nicht, deine Registrierungsschlüssel mitzugeben (wenn ich den Satz in deinem Eröffnungsposting richtig verstanden habe). Da wäre mir lieber, du startest vor der Änderung kurz mal RegEdit und exportierst meine Daten, damit ich als Anwender quasi eine Sicherheitskopie meiner Einstellungen habe. Du kannst es auch anders lösen als mit RegEdit. War nur ein Beispiel. Nur solltest du darauf verzichten, irgendwelche Originaleinträge einfach so zu löschen bzw. zu überschreiben. Und davon muss ich ja ausgehen, sonst gäbe es wohl kaum einen Grund, deine Registrydaten ins Archiv zu packen. Oder?
Abgesehen davon habe ich bspw. meine Einträge für BAT und CMD verändert. Eine Benutzung deiner Registryschlüssel wäre also für mich mit Aufwand verbunden. Auch ein Grund, weshalb ich bisher vom Testen deines Editors abgesehen habe.

Harry M. 2. Nov 2004 10:03

Re: batch edit 1.0 (editor für batchdatein / nt-befehlsscrip
 
nun will ich auch mal wieder stellung beziehen. ja die db enthält code-schnippsel. wie im screenshot dargestellt.
aber ich glaube, ich werde mich davon wieder trennen. es war auch die letzte funktion, die ich eingebaut hatte. villeicht hätte ich doch nochmal darüber schlfen sollen. meine bisherigen versuche im praktischen umgang waren meiner auffassung nach brauchbar. ich meine, auch wenn ihr den sinn der sache nicht ganz versteht, ich konnt damit wunderbar arbeiten.

das syntaxhighlighting versuch ich auf jedenfall noch zuübernehmen und um zusetzten.

hinsichtlich des setup's. ich habe mich dafür entschieden, weil ich unter [HKEY_CLASSES_ROOT\batfile\shell\edit\command] und [HKEY_CLASSES_ROOT\cmdfile\shell\edit\command] den "Standard"-schlüsel mit REGISTRY.ReadString() und REGISTRY.WriteString nicht via programmierung lesen(!) und ändern(!) konnte. habe ich anfangs versucht bin aber nicht weitergekommen. es wurde zwar erfolgreich kompiliert und auch fehlerfrei ausgeführt (auch keine meldung des debugger wurde nicht ausgegeben), aber ändern konnte ich die einträge nicht. auch dann nicht, wenn ich einen registrierungschlüssel mit den notwendigen werten mit gebe. die orginal einträge, also die einträge, die ich ändern muß um alle funtionenen des editor nutzen zukönnen, kann ich durch blosses imprortieren der regkeys nicht erreichen. habe ich versucht. ging bei mir nicht. die windows hilfe hat mir folgendes verraten.

"Die Wertdatentypen REG_EXPAND_SZ und REG_MULTI_SZ können nicht angezeigt oder bearbeitet werden. Wenn Sie den Wert REG_EXPAND_SZ anzeigen möchten, wird dieser von der Datei Regedt32.exe als binärer Datentyp angezeigt. Wenn Sie versuchen, einen dieser Datentypen zu bearbeiten, wird dieser von der Datei Regedt32.exe als REG_SZ gespeichert. Der Datentyp führt nicht mehr die vorgesehene Funktion aus. Um diese Datentypen anzuzeigen oder zu bearbeiten, müssen Sie die Datei Regedt32.exe verwenden." das das imortieren nach der deinstallation wieder problemlos geht liegt wohl daran, das die ursprungseinträge nicht mehr vorhanden sind. sie werden also neu erstellt. sollte ein user so wie du sein system schon so individuallisiert haben ist es natürlich von vorteil wenn man die einträge vorher sichern könnte. ich habe schon einen lösung zufinden versucht. (ich wollte die einträge via bat sichern - ähnlich regedit /s für importieren) ich habe nur noch keinen parameter finden können /s konnt ich in der dokumentation und hilfe bisher auch noch nicht finden.

ich benutze den installshild express von borland. aber ich wede mich mal kümmern wegen dem innosetup. ich habe da auch noch ne pn bekommen. is sowas wie ein scipt drinne. da ich inno noch nicht kenne, werde ich das mal beleuchten.

ich hoffe alle fragen soweit beantwort zu haben.

achso was die sache mit synedit angeht. habe weiter oben davon schonmal was gelesen. habe auch gleich mal meine delphi hilfe durchducht nach synedit synrichedit. habe (wieder) nichts gefunden aber schonmal kappiert, das es dafür nen komponente gibt. habe mir die auch gleicg gezogen. jetzt muß ich mir erstmal die neuen möglichkeiten begutachten

Harry M. 2. Nov 2004 22:40

Re: batch edit 1.0 (editor für batchdatein / nt-befehlsscrip
 
ich habe mir jetzt die sache mit dem inno setup angesehen. der freundliche user der mir auch schon mal hat das script zugesendt, hat nach der compilierung eine gesamte grösse von 800 oder 880 kb erreicht. aber ich muß auch sage das ich bei der entwicklung keine rücksicht auf die grööse genommen habe. wird sich aber in zukunft ändern. :)

MathiasSimmack 3. Nov 2004 13:22

Re: batch edit 1.0 (editor für batchdatein / nt-befehlsscrip
 
Warum willst du zum Sichern der Werte eine BAT-Datei benutzen? Inno Setup (eigentlich jedes Setup-Tool) bietet Möglichkeiten, externe Programme zu starten. Allerdings solltest du nicht auf die [Run]-Sektion zurückgreifen, weil die AFAIK erst nach der Installation und nach dem Schreiben der Registrywerte bearbeitet wird. Das wäre also zu spät. Aber dank eingebauter Pascal-Skriptsprache kannst du das Ausführen von RegEdit bspw. auch vor dem Installieren auslösen.

Notfalls wende dich einfach mal an den, der dir das Inno Setup-Skript geschickt hat. Der wird dir da sicher weiterhelfen können. Oder ich schau mal nach, dann kriegst du die Lösung von mir. Der Aufruf lautet ganz einfach
Code:
regedit /s /e REG-Datei Registryschlüssel
"/e" für Export, "/s" vermutlich für rekursiv, also durch die Unterordner durch, IMHO. Oder du schreibst dir ein eigenes kleines Programm zum Exportieren der Registryschlüssel.

Und bei der Deinstallation könntest du dann auf User-Wunsch (!) diese REG-Datei(en) wieder importieren.

Luckie 3. Nov 2004 13:33

Re: batch edit 1.0 (editor für batchdatein / nt-befehlsscrip
 
/s steht meines Wissens für silent, also ohne dass sich der Registryeditor öffnet.

MathiasSimmack 3. Nov 2004 13:41

Re: batch edit 1.0 (editor für batchdatein / nt-befehlsscrip
 
Silencium, @Luckie! Ich will auch Recht haben. ;)

Harry M. 3. Nov 2004 13:58

Re: batch edit 1.0 (editor für batchdatein / nt-befehlsscrip
 
ich habe gestern noch ein bissche herumexperimentiert bezüglich des exportieren von den regkeys. den parameter /e habe ich dabei auch schon mal ins auge gefasst. dake für die tipps diesbezüglich.

warum ich dies jetzt via batch importieren will. ich suche nur grad noch nach weiten möglichkeiten (oder mir war den abend so). kurz und kanpp meine überlegungen gingen dahin das setup über ne batch zugestallten.
und das ich zum sichern usw ne bat nehmen will is für mich nur ne frage der faulheit da ich wenn ich es "mal in (m)ein system installieren ich nicht immer wieder die gleichen schritte mache muß sonder alles mit mausklick regel kann. wenn du weißt wie ich meine.

ich habe mir mal jetzt die synedit komoneten besorgt. kriege die aber irgendwie nicht in mein delphi rein. wenn ich im menü uber komponente >> neue komponete findet er die QSynEdit.pas nicht. suchpfad habe ich aber auch schon eingestellt. nichts.
und wenn ich komponente >> kompopnete installieren findert er die SynEdit.dcu nicht. dann hatte ich mal wieder comiliert, jedoch war auf meiner "Standard-Setie" kein neues item. dann hatte ich es mal wiedergeschafft. da war ein neues item. jedoch war es wenn ich wieder aufs form wollte wie weggezaubert. dann hatte ich es mal geschaft irgendwas zu importieren konnte diese dann auch auf mein form packen am ende was es doch nur das normale memo nur das es jetzt anders hieß. (is grad das erstemal das ich versuche irgendwas in mein delphi einzubringen) :gruebel:

MathiasSimmack 3. Nov 2004 14:13

Re: batch edit 1.0 (editor für batchdatein / nt-befehlsscrip
 
Hab mal fix eine Lösung für Inno Setup geschrieben. So würde es gehen:
[code=pre]
Code:
type
  TExtensionExport =
    record
      Extension,
      Name        : string;
    end;

procedure ExportRegistry;
var
  ExportArray : array[1..2]of TExtensionExport;
  i,
  ECode      : integer;
  tmp        : string;
begin
  ExportArray[1].Extension := '.bat';
  ExportArray[1].Name     := 'batfile.reg';
  ExportArray[2].Extension := '.cmd';
  ExportArray[2].Name     := 'cmdfile.reg';

  for i                   := 1 to 2 do
  begin
    if(RegQueryStringValue(HKEY_CLASSES_ROOT,ExportArray[i].Extension,'',tmp)) and
      (tmp <> '') then
    begin
      ShellExec('open',
        'regedit.exe',
        '/s /e "' + ExpandConstant('{app}') + '\' + ExportArray[i].Name + '" HKEY_CLASSES_ROOT\' + tmp,
        '',
        SW_SHOW,
        ewWaitUntilTerminated,
        ECode);
    end;
  end;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  if(CurPageId = wpInstalling) then
    ExportRegistry;
end;
Leider ist die Pascal-Scriptsprache von Inno Setup noch nicht mit Delphi zu vergleichen. Das Array ließ sich daher nicht gleich bei der Deklaration mit Werten füllen. Und obwohl es laut Hilfe "Low" und "High" gibt, hat der Compiler in der Zeile
Code:
  for i                   := Low(ExportArray) to High(ExportArray) do
gemeckert. Kann auch nur ein Schusselfehler von mir sein. Musst du mal gucken. Jedenfalls exportiert er die gewünschten Dateiendungen als REG-Datei in den Zielordner, den der User ausgewählt hat. Bezüglich der Funktion "CurPageChanged" würde ich dich an die Inno Setup-Hilfe verweisen. Die andere (ExportRegistry) ist eine selbstgeschriebene. :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:16 Uhr.
Seite 5 von 7   « Erste     345 67      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz