Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   RegEdit Xtreme 0.2 (Pre-Alpha Vorschauversion 7) (https://www.delphipraxis.net/137675-regedit-xtreme-0-2-pre-alpha-vorschauversion-7-a.html)

jaenicke 26. Jul 2009 09:22


RegEdit Xtreme 0.2 (Pre-Alpha Vorschauversion 7)
 
Liste der Anhänge anzeigen (Anzahl: 4)
Hallo!

Wichtig:
Es handelt sich bisher um eine nicht zum produktiven Einsatz geeignete Vorschauversion!


Nachdem ich vor Kurzem im DF nach Ideen zu einem Registryeditor gefragt und auch jede Menge Feedback bekommen und dann auch eine erste Version vorgestellt habe, möchte ich jetzt auch hier Gelegenheit zu Kommentaren, Kritik und Verbesserungsvorschlägen geben.

Da ich auch noch an anderen Projekten arbeite, geht die Entwicklung relativ langsam von statten, so dass ich auf diesem Wege bereits Einblick gewähren möchte, insbesondere auch in den Quelltext.

Features:
  • Auslesen der lokalen Registry ohne Verzögerungen (auch nicht bei HKCR)
  • Auslesen von .reg Dateien
  • Direkte Eingabe eines Pfades mit Eingabevervollständigung (per \ oder Tab wird der aktuelle Pfadteil ergänzt)
  • Starten ohne Adminrechte möglich, erst bei Bedarf kann man ggf. explizit umschalten
  • Einstellungen verfügbar
  • Favoriten verfügbar, aber die werden noch nicht gespeichert.
  • Direkte Anzeige von Schlüsseln aus der Zwischenablage mit Strg + Shift + V
Lizenz:
MPL 1.1 oder LGPL 2.1 oder GPL 2.0 (oder höher)

Installation:
Das Setup ausführen oder die Zip-Datei auspacken.

Unterstützte Delphiversionen:
Delphi 2006 / Turbo Delphi, Delphi 2007
(Delphi 2005 und früher plane ich derzeit nicht mehr zu unterstützen, mit ein paar Umbauten sollte es auch da funktionieren, aber ich nutze definitiv Features, die es da noch nicht gab.)
Für Delphi 2009 muss ich noch Anpassungen wegen Unicode machen.

Unterstützte Windowsversionen:
Windows ME, 2000, XP, Vista, 7
(Windows 95 und 98 werden nicht unterstützt)

Bekannte Probleme:
  • Die Werte sind noch nicht editierbar
  • Die .reg Dateien müssen im Ansiformat vorliegen, also zuerst umgewandelt werden. Das wird natürlich bald auch mit Unicodedateien funktionieren.
  • Das Auslesen der .reg Dateien funktioniert noch nicht ganz korrekt (sollte jetzt größtenteils klappen)

Das Projekt habe ich auch hier vorgestellt:
http://www.delphi-forum.de/viewtopic.php?p=567719
http://forum.delphi-treff.de/showthread.php?t=27144

Schönen Gruß,
Sebastian

Alter Mann 26. Jul 2009 09:52

Re: RegEdit Xtreme 0.2 (Pre-Alpha Vorschauversion 6)
 
Hi,

läuft auch mit D2009, wenn 5 Anpassungen gemacht werden:

1. In vstKeysGetText und vstValuesGetText aus var CellText : WideString bitte ein String machen.
2. In den Unit's LocalRegAutoComplete, SJConfigUtils und RegFileAutoComplete möchte D2009
an drei Stellen lieber ein CharInSet.
TLocalRegAutoComplete.AutoComplete, TConfigLocationManager.ValidateLocation und TRegFileAutoComplete.AutoComplete

Schon schnell!

Gruß

jaenicke 26. Jul 2009 11:44

Re: RegEdit Xtreme 0.2 (Pre-Alpha Vorschauversion 6)
 
Alles klar, danke, das werde ich dann einmal ändern.

Zunächst gibt es aber ein größeres Problem, nämlich, dass RegEnumKeyEx die Schlüssle unsortiert zurückgibt. Da muss ich mir noch etwas einfallen lassen, eine Idee wurde im DF bereits genannt. Mal schauen.

xZise 26. Jul 2009 14:57

Re: RegEdit Xtreme 0.2 (Pre-Alpha Vorschauversion 7)
 
Hallo,

mich interessiert das Programm, aber ich möchte natürlich das System nicht zerstören. Meine Frage ist also, ob du einen Screenshot reinstellen könntest und mir sagen könntest, in wie fern ich den Editor starten kann, ohne, dass was schief geht (natürlich will ich keine Garantie ^^)?

MfG
xZise

jaenicke 26. Jul 2009 15:04

Re: RegEdit Xtreme 0.2 (Pre-Alpha Vorschauversion 7)
 
Zitat:

Zitat von xZise
Meine Frage ist also, ob du einen Screenshot reinstellen könntest und mir sagen könntest, in wie fern ich den Editor starten kann, ohne, dass was schief geht (natürlich will ich keine Garantie ^^)?

Naja, das sieht abgesehen von drei Buttons unterm Menü aus wie der normale Registryeditor, deshalb ist ein Screenshot da relativ witzlos. ;-)

Ja, und im Moment macht das Programm noch rein gar nichts schreibend. Es zeigt nur an, da kann also nix passieren. Das einzige was geschrieben wird sind auf Wunsch die Einstellungen an die angegebene Position, wenn man die Einrichtung nicht durch Schließen des Wizards abbricht. ;-)

Wenn ich eine Gefahr sehen würde, dass da was am System kaputt gehen kann, weil ich noch nicht richtig getestet habe oder so, dann würde ich nicht schreiben "nicht zum produktiven Einsatz geeignet", sondern entsprechend warnen. ;-)

Matze 26. Jul 2009 15:10

Re: RegEdit Xtreme 0.2 (Pre-Alpha Vorschauversion 7)
 
Erstaunlich wie fix alles angezeigt wird. :thumb:

himitsu 26. Jul 2009 15:57

Re: RegEdit Xtreme 0.2 (Pre-Alpha Vorschauversion 7)
 
@xZise:
- nimm dir die letzte Zip (Src+Exe)
- entpacke diese
- starte die EXE und wenn sie dich fragt wo die Einstellungen gespeichert werden sollen,
dann wähle "protabel" und alles landet nur in dem Programmverzeichnis :angel:

siehe Open-Source -> SJ Config Utils 1.0 RC 1

jaenicke 26. Jul 2009 16:05

Re: RegEdit Xtreme 0.2 (Pre-Alpha Vorschauversion 7)
 
Man kann den Einrichtungswizard wie gesagt auch einfach abbrechen, dann sind das Sessioneinstellungen, die gar nicht gespeichert werden. Man kann aber dennoch die Einstellungen (ist hier ja bisher nur eine) normal ändern, die sind nur beim Beenden dann verloren. ;-)

xZise 26. Jul 2009 16:30

Re: RegEdit Xtreme 0.2 (Pre-Alpha Vorschauversion 7)
 
Okay ich habe es gewagt :P

Sieht sehr gut aus (bis auf die Icons ^^ die passen irgendwie nicht zusammen :P ). Ich nehme gerne die von Mark James, du müsstest halt ihn nur in der Aboutbox nennen.
Ansonsten wird man auch irgendwann selber Reg-Dateien erstellen können? Und speichert er noch nicht die Favoriten? Oder macht das der zweite Button?

Zum Sourcecode: Er lässt sich nicht auf Anhieb mit Delphi 2009 kompilieren. Und zwar ist das Event OnGetText so definiert:
Delphi-Quellcode:
TVSTGetTextEvent = procedure(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; var CellText: UnicodeString) of object;
Im Sourcecode des Forumlars hingegen verwendest du WideString und das passt dann nicht ;) Das selbe gilt für vstValuesGetText.

MfG
xZise

jaenicke 26. Jul 2009 17:09

Re: RegEdit Xtreme 0.2 (Pre-Alpha Vorschauversion 7)
 
Zitat:

Zitat von xZise
bis auf die Icons ^^ die passen irgendwie nicht zusammen

Die Oberfläche insgesamt sieht noch nicht so toll aus, aber das kommt ja erst am Schluss, erst einmal ist das dahinter ja entscheidend. Ich fange ja nicht an die Oberfläche richtig schön zu machen, wenn noch nix funktioniert. ;-)

Zitat:

Zitat von xZise
Ansonsten wird man auch irgendwann selber Reg-Dateien erstellen können?

Sicher, bis dahin ist es nur noch ein kleiner Schritt, nachdem der Parser schon so gut wie fertig ist.

Zitat:

Zitat von xZise
Und speichert er noch nicht die Favoriten? Oder macht das der zweite Button?

Doch, vorausgesetzt du hast die Einstellungen speichern lassen. ;-)
Das sind auch Einstellungen. Das hatte ich vergessen als ich das vorhin geschrieben habe. :D

Zitat:

Zitat von xZise
Zum Sourcecode: Er lässt sich nicht auf Anhieb mit Delphi 2009 kompilieren.

Ja, hat Alter Mann ja schon geschrieben. Das werde ich auch noch anpassen.

Ja, die nächsten Schritte sind jetzt ein besserer Suchalgorithmus und das richtige Handling der verschiedenen Datenformate (Anzeige, Editierung, Einstellungen dazu, ...).

Namenloser 26. Jul 2009 17:18

Re: RegEdit Xtreme 0.2 (Pre-Alpha Vorschauversion 7)
 
Das sieht schon mal sehr gut aus, vor allem die Geschwindigkeit ist beeindruckend. Ist die Suchfunktion denn schon implementiert? denn bei mir hat die irgendwie gar nix getan.

jaenicke 26. Jul 2009 17:49

Re: RegEdit Xtreme 0.2 (Pre-Alpha Vorschauversion 7)
 
Zitat:

Zitat von NamenLozer
Ist die Suchfunktion denn schon implementiert? denn bei mir hat die irgendwie gar nix getan.

Nein, noch nicht komplett, mit Enter sollten Unterschlüssel des markierten Eintrags aber schon gefunden werden. Ich habe da etwas Probleme mit der Geschwindigkeit. Denn einerseits soll natürlich alles gefunden werden, andererseits bekomme ich die Schlüssel nur größtenteils sortiert vom System, nicht komplett sortiert. (So werden sie im Moment auch angezeigt.)

Ich überlege jetzt einen threadbasierten Ansatz, der (verbunden mit einem "ratenden" Suchalgorithmus) sehr schnell sein sollte. Dabei darf der Benutzer natürlich nicht allzuviel von notwendigen Korrekturen der Reihenfolge mitbekommen, so dass die Synchronisierung eine kleine Herausforderung ist. Kleine Analysen meinerseits zeigen aber, dass (zumindest auf den bisher gescannten PCs) ein solcher asynchron korrigierender Ansatz gut klappen sollte, da sich die Anzahl der Korrekturen in Grenzen hält.

Insbesondere experimentiere ich nebenbei ein wenig mit dem direkten Auslesen von Registrydateien, was ähnliche Probleme macht.

Daniel 26. Jul 2009 18:09

Re: RegEdit Xtreme 0.2 (Pre-Alpha Vorschauversion 7)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Threads wären nett. :-)

Wenn man das Programm reizt und auf einem der Root-Elemente die '*'-Taste drückt, um alle Unterelemente aufzublättern, dann steht das Programm zweimal still: Zuerst, wenn alle Knoten ermittelt werden, und dann nochmals am Ende, wenn alle Knoten freigegeben werden. Das gibt dann die Standard-Meldung "Programm reagiert nicht" (siehe Screenshot).

himitsu 26. Jul 2009 18:14

Re: RegEdit Xtreme 0.2 (Pre-Alpha Vorschauversion 7)
 
ein Thread zum füllen einer VCL-Komponente ... ich weiß ja nicht, aber das Syncronize würde dann auch wieder alles blockieren :roll:

ein Application.ProcessMesages z.B. alle 50-100 ms würde es zumindestens bediehnbar lassen, wenn man wärend des Application.ProcessMesages kein BeginUpdate aktiv hat :)
(siehe Demo_Tree2.exe in himXML)

jaenicke 26. Jul 2009 18:35

Re: RegEdit Xtreme 0.2 (Pre-Alpha Vorschauversion 7)
 
Zitat:

Zitat von Daniel
Wenn man das Programm reizt und auf einem der Root-Elemente die '*'-Taste drückt, um alle Unterelemente aufzublättern, dann steht das Programm zweimal still

Ich glaube an der Stelle wird es schwer da viel zu reißen, weder geht das besonders schnell zu machen noch geht es gut in Threads. Aber ich werde sicher noch weiter zu optimieren versuchen.
Aber da man das komplette Ausklappen ja kaum oft braucht, ist das auch nicht so schlimm, wenns nicht so schnell geht. :mrgreen:

Zitat:

Zitat von himitsu
ein Thread zum füllen einer VCL-Komponente ... ich weiß ja nicht, aber das Syncronize würde dann auch wieder alles blockieren :roll:

Ich habe zwischen Daten und Darstellung getrennt. ;-)
Ich muss also nur die dahinterliegenden Daten initialisieren, wie es auch passiert, wenn deren Knoten ins Sichtfeld gescrollt werden. So erreiche ich im Moment ja überhaupt nur diese Geschwindigkeit. ;-)

// EDIT:
Da danach gefragt wurde, habe ich einmal auch noch einen Screenshot oben angehängt. ;-)

OG Karotte 18. Aug 2009 18:41

Re: RegEdit Xtreme 0.2 (Pre-Alpha Vorschauversion 7)
 
Ich weiß ja nun nicht wo dieser Thread eigentlich weitergeführt wird / werden soll:

Im DF oder hier. Da hier die neueren Post's sind mach ich einfach mal hier weiter:

Da ich in diesem Thread darauf gestoßen bin / wurde :zwinker: , das der Windows eigene RegEditor die Daten immer alphabetisch sortiert, wäre eine Funktion / Möglichkeit wünschenswert, mit der man sich die Daten in der Reihenfolge anschauen kann wie sie "tatsächlich" in der Registry abgelegt sind. Also sollte dieses Feature (hab bis lang beim Überfliegen der Threads nichts entspr. finden können) in deinem RegEdit Xtreme noch nicht geplant sein:

Ich (und bestimmt auch ein paar andere :mrgreen: ) würden sich über eine Implementierung freuen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:44 Uhr.

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