Entwickler-Ecke

Open Source Projekte - RegEdit Xtreme 0.2 (Pre-Alpha Vorschauversion 7)


jaenicke - Fr 19.06.09 06:34
Titel: RegEdit Xtreme 0.2 (Pre-Alpha Vorschauversion 7)
Hallo!

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


Nachdem ich vor Kurzem nach Ideen zu einem Registryeditor gefragt [http://www.delphi-forum.de/viewtopic.php?t=92830] und auch jede Menge Feedback bekommen habe (Danke dafür noch einmal!) möchte ich jetzt eine erste Version vorstellen.

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:
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:

Das Projekt habe ich auch hier vorgestellt:
http://www.delphipraxis.net/post1062420.html
http://forum.delphi-treff.de/showthread.php?t=27144

Schönen Gruß,
Sebastian


Yogu - Fr 19.06.09 16:24

Hallo jaenicke,

toll, dass es so schnell ging mit der ersten Vorschau-Version! :D

Das Ding ist wirklich wahnsinnig schnell. Ein paar Bugs:


Ich bin wahnsinnig gespannt auf das Programm. Vielleicht könnte ich meinen Vorschlag zum "Scripten" selbst schreiben. Ich stelle mir vor, die AutoVerfollständigen-Klasse zu verwenden, und dort eben zu prüfen, ob der Text mit "DELETE", "KEY, "DWORD" oder so anfängt. Aber ich warte lieber noch etwas, bis du mehr implementiert hast.

Weiter so! :zustimm:

Grüße,
Yogu

Juhu, ich hab den ersten Beitrag zum zukünftig besten Registry-Editor der Welt geschrieben *stolzbin* :mrgreen:


jaenicke - Fr 19.06.09 16:51

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Wenn ich im "Print"-Key bin, zeigt die Auto-Verfollständigung zwar "Printers" an, man kann aber per ENTER nicht reinnavigieren ("Das Öffnen des Schlüssels ist fehlgeschlagen").
Das muss ich mir mal anschauen, könnte aber an den fehlenden Rechten liegen. Denn man kann ja ohne starten. Hast du es mit Adminrechten auch versucht?

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Wenn ich "\" drücke, hängt sich das Programm auf
Wo drückst du das? Nicht in dem Edit unten sondern irgendwo?

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Wenn ich die angehängte .reg-Datei öffne, hagelte es beim esten öffnen Zugriffsverletzungen, und zwar immer in einem OnPaint oder so.
Ich vermute beim Initialisieren der Einträge danach. Ich hab auch wie gesagt schon gesehen, dass das noch nicht richtig klappt um genau zu sein habe ich Buchstabenverschiebungen bei den Registryschlüsseln gesehen:
Software gibts, dazu steht da Software und oftware...

Das Problem ist da, dass es gar kein Ding wäre das normal durchzugehen. Dann würde das aber zu lange dauern. Ich werde das jetzt nochmal ganz ohne die ganzen Stringoperationen mit Pointern (PChars) bauen, dann wird es sogar nochmal schneller werden.


Regan - Fr 19.06.09 19:27

Hallo,

das war wirklich sehr schnell, vorbildlich :zustimm: . Willst du die Pfadanzeige nicht als Breadcrumbnavigation machen und beim Klick darauf, dass man dann eine Editfeld editieren kann?

MfG
Regan


Yogu - Fr 19.06.09 21:35

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Wenn ich im "Print"-Key bin, zeigt die Auto-Verfollständigung zwar "Printers" an, man kann aber per ENTER nicht reinnavigieren ("Das Öffnen des Schlüssels ist fehlgeschlagen").
Das muss ich mir mal anschauen, könnte aber an den fehlenden Rechten liegen. Denn man kann ja ohne starten. Hast du es mit Adminrechten auch versucht?

Ok, ich habs nochmal getestet (mit Adminrechten). Durch das Virtual TreeView kann ich alle Schlüssel aufrufen, in der Eingabezeile unten schlagen alle Aufrufe von HKCC fehl. Seltsam...

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Wenn ich "\" drücke, hängt sich das Programm auf
Wo drückst du das? Nicht in dem Edit unten sondern irgendwo?

Ich hab ganz normal in dem Edit \ gedrückt. Das tut auch überall - bis auf "Printers". Jetzt hat er sich sogar schon aufgehängt, als ich im übergeordneten Key von "Print" ein P eingegeben habe. Irgendwas ist an dem Print-Key faul...

Aber jetzt warten wir einfach erstmal, bis das hier weiter geht. Jetzt schon groß Bugs zu beheben ist nicht sinnvoll.


jaenicke - Fr 19.06.09 21:47

user profile iconRegan hat folgendes geschrieben Zum zitierten Posting springen:
Willst du die Pfadanzeige nicht als Breadcrumbnavigation machen und beim Klick darauf, dass man dann eine Editfeld editieren kann?
Ja, daran hatte ich gedacht, inbesondere an die Dropdownfelder wie bei Vista. Das wäre aber ein relativ hoher Programmieraufwand, deshalb habe ich das erst einmal nicht so gelöst.

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Ok, ich habs nochmal getestet (mit Adminrechten). Durch das Virtual TreeView kann ich alle Schlüssel aufrufen, in der Eingabezeile unten schlagen alle Aufrufe von HKCC fehl. Seltsam...
Ich muss einmal schauen welche Rechte ich wo angegeben habe. Die Rechteverwaltung muss ich noch verbessern. Vor allem muss ich noch ne Prüfung einbauen, ob man Adminrechte hat und dementsprechend reagieren.


jaenicke - Sa 20.06.09 01:08

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Wenn ich die angehängte .reg-Datei öffne, hagelte es beim esten öffnen Zugriffsverletzungen, und zwar immer in einem OnPaint oder so.
Wie ich geschrieben habe:
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Die .reg Dateien müssen im Ansiformat vorliegen, also zuerst umgewandelt werden. Das wird natürlich bald auch mit Unicodedateien funktionieren.
Ich habe bisher nämlich schlicht die delphiinterne TStringList benutzt.
Ich werde aber das Laden noch entsprechend ändern. Denn TStringList kann nicht nur kein Unicode sondern bedeutet natürlich ggf. eine enorme Arbeitsspeicherverschwendung. ;-)

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Als ich die weggekriegt hab, habe ich eine ShowMessage-Meldung mit dem Text "1". Nur so zur Info, falls du die vergessen hast :P
Das ist Absicht, das ist die Anzahl der Zeilen. An der 1 sehe ich schon so, dass du eine Unicodedatei verwendet hast. ;-)

Der Schlüssel Printers ist bei mir überall leer trotz installierter Drucker, mal schauen, das Problem tritt bei mir nicht auf. Das Öffnen aus dem Eingabefeld schon, das schaue ich mir an.

// EDIT:
Ich habe einen ersten Test mit der korrigierten Analyse der .reg Dateien gemacht:
Kompletter Zweig HKLM, 160 MiB, 2,5 Mio Zeilen --> 2,6 Sekunden fürs Einlesen
Da ist die Festplattengeschwindigkeit die Begrenzung, nicht die Analyse. :mrgreen:

Und jetzt kommt der Umbau auf Unicode dazu.


Martok - Sa 20.06.09 01:43

Schnell ist der allerdings, ein paar Sachen hätte ich aber anzumeckern...

-Mach bitte dieses unsägliche Single Click Expand aus. Kann man ja gar nicht bedienen -.-

-Werte auslesen funktioniert noch nicht so ganz, oder? REG_DWORD wird nicht unterstützt, Standardschlüssel unter HKCR stehen als "(Interner Fehler)" drin.

-In dem Breadcrumb-Eingabe-Teil kann man mehrmals hintereinander Tab drücken, dann entstehen Pfade wie "HKEY_CLASSES_ROOT\.txt\\\\\\\\\\", die man ganz schlecht öffnen kann ;)

-Wie wärs mit einer Combobox für die Eingabevorschläge, wie eine URL-Bar?


jaenicke - Sa 20.06.09 02:01

user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:
Mach bitte dieses unsägliche Single Click Expand aus. Kann man ja gar nicht bedienen -.-
Ich wiederum vermisse das unter Vista sehr im Windows Explorer. :D
Wozu zweimal extra klicken statt nur einmal? :gruebel:

Das wird aber dann einstellbar sein, ich habe es auf die Liste dafür geschrieben.

user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:
Werte auslesen funktioniert noch nicht so ganz, oder? REG_DWORD wird nicht unterstützt, Standardschlüssel unter HKCR stehen als "(Interner Fehler)" drin.
Ja, da muss ich erst die Formate alle einbauen, bisher sollten REG_SZs normalerweise gehen.
Da ich jeweils auch Editoren für die Formate brauche, kapsele ich das erst einmal und baue das dann erst ein.

user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:
In dem Breadcrumb-Eingabe-Teil kann man mehrmals hintereinander Tab drücken
:oops: Das habe ich vergessen als ich nachträglich noch Tab eingebaut habe.

user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:
Wie wärs mit einer Combobox für die Eingabevorschläge, wie eine URL-Bar?
Für die Favoriten wird es einen entsprechenden Knopf neben der Eingabe geben.

Eine echte Liste aller Suchergebnisse oder sowas wird es nicht geben, ganz einfach weil das zu langsam wäre. Mit der binären Suche finde ich sehr schnell irgendeinen passenden Eintrag, wobei ich das noch optimieren werde um jeweils den kürzesten passenden Eintrag zu finden statt einem beliebigen.

Passende Favoriten vorschlagen ist aber eine gute Idee. Natürlich dann mit Volltextsuche. Also ich gebe ein Softw und erhalte z.B. HKLM\Software und sowas.

Im Moment arbeite ich an einem Multithreadansatz für das Einlesen der Dateien. :D
Plus einem eigenen optimierten Auslesen.
Denn im Grunde kann der Rest ja im Hintergrund weitergeladen werden, wenn die ersten Rootnodes da sind. Eine entsprechende Synchronisierung vorausgesetzt.


Yogu - Sa 20.06.09 19:16

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:
Mach bitte dieses unsägliche Single Click Expand aus. Kann man ja gar nicht bedienen -.-
Ich wiederum vermisse das unter Vista sehr im Windows Explorer. :D
Wozu zweimal extra klicken statt nur einmal? :gruebel:

Unter XP geht das mit einmal klicken, und so wie's dort gelöst ist, finde ich es auch ok. Das Problem ist nur, dass ein Knoten auch erweitert wird, wenn man über die Tastatur die Nach-unten-Taste drückt - das ist so was von nervig. Wollte ich eigentlich auch noch schreiben, hab's dann aber vergessen.

Huch! Wieso hab ich das erst jetzt bemerkt? Im VST springt man beim Eintippen eines Anfangsbuchstaben ja gar nicht zum ersten Treffer. Normalerweise gebe ich im Regedit z.B. ".txt" ein, um in HKCR den entsprechenden Dateityp zu markieren - ohne dieses Feature kann man da lang rumsuchen :?

Edit: Noch ein Featurewunsch. Kannst du bitte Strg+Backspace einbauen? Wenn man das drückt, sollte das letzte Wort gelöscht werden. In diesem Fall wäre es vielleicht sogar noch sinnvoll, zum übergeordneten Key zu wechseln:


Quelltext
1:
2:
3:
4:
5:
HKCR\txtfile\Shell

>> Backspace: ergibt

HKCR\txtfile\


BenBE - Sa 20.06.09 20:07

Naja, für die Adresszeile würde ich eher den Ansatz der Coolbar vom FF gehen (Die kombinierte Adresszeile):
- Man braucht nicht den Anfang angeben, sondern einen beliebigen Teil der Adresse
- Vormals besuchte Schlüssel (History) werden automatisch mit durchsucht
- Tags von Favoriten oder deren Adresse wird auch ausgewertet

Somit müsste man z.B. allein "Windows Run" eingeben, wenn man den AutoRun-Schlüssel schon mal besucht hätte, hätte aber trotzdem noch die Möglichkeit die Zeile recht einfach für die Navigation zu nutzen. Z.B. "HKLM\Software\ croso" --> Könnte Microsoft vorschlagen. Das ist insbesondere bei großen Keys sinnvoll, wo recht viele Namen ähnlich Anfangen und man besser mit deren Ende o.ä. unterscheidet.


jaenicke - Di 23.06.09 08:07

Nachdem ich ein paar Tage nicht online war gibts jetzt eine neue Version. Das Auslesen von .reg Dateien sollte inkl. der Werte korrekt klappen. Die Werte selbst müssen noch richtig formatiert und deren Formate und zeilenübergreifende Werte erkannt werden. Autocompletion geht da noch nicht.

Bei größeren Dateien dauert das noch viel zu lange, weil ich da einen Notbehelf drin habe, den ich jetzt als nächstes sauber umsetzen werde. (Zusammen mit dem richtigen Auslesen an sich.)

Favoriten sind im Anfangsstadium implementiert, es fehlen aber noch die meisten Funktionen. Es gibt drei Kategorien: Festgepinnte Favoriten, Favoriten und den Verlauf. Die werden derzeit einfach untereinander angezeigt, das wird natürlich noch ein wenig anders werden.
Ach ja: Einträge in den Favoriten werden nicht gespeichert bisher und die Verlaufseinträge durch Festpinnen für die Session in die Favoriten übertragen.

Zudem gibt es jetzt Einstellungen. Bei neuen Versionen werden die alten ggf. repariert / erweitert werden. Dort kann man derzeit nur das Single-Click-Expandieren ausschalten.

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Das Problem ist nur, dass ein Knoten auch erweitert wird, wenn man über die Tastatur die Nach-unten-Taste drückt - das ist so was von nervig.
Ok, da stimme ich zu, das habe ich nicht ausprobiert gehabt. Ich werde schauen, ob es eine Option dafür gibt. Wenn nicht, ändere ich das direkt im Quelltext, das ist ja mit ein Grund, weshalb ich den direkt mit in das Paket und das Projekt eingebaut habe.

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Huch! Wieso hab ich das erst jetzt bemerkt? Im VST springt man beim Eintippen eines Anfangsbuchstaben ja gar nicht zum ersten Treffer.
Das habe ich nie benutzt im Registryeditor, ist aber eine gute Idee. Das werde ich glaube ich am besten über ein ausklappendes Minisuchfeld lösen wie auch in Browsern bei der Suche auf der Seite.

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Noch ein Featurewunsch. Kannst du bitte Strg+Backspace einbauen?
Alles sowas kann ich relativ einfach einbauen. Auch dass man z.B. mit Strg + Pfeil links / rechts die Schlüssel überspringt und sowas.

user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Naja, für die Adresszeile würde ich eher den Ansatz der Coolbar vom FF gehen (Die kombinierte Adresszeile)
Da ist glaube ich eine ausklappende Suchleiste wie auch in Chrome und anderen Browsern sinnvoll. Die Adressleiste unten wird sonst mit Funktionen etwas überladen und es fehlen genauere Eingabemöglichkeiten. In der Adressleiste von Chrome / Coolbar z.B. ist das kein Problem, bei der Suche schon.


jaenicke - Sa 27.06.09 20:59

Neue Version: Jetzt funktionieren auch die direkt exportierten Registrydateien, sofern nicht echte Unicodezeichen drin vorkommen. Vorerst benutze ich von den zwei Byte eines Zeichens einfach nur eins und ignoriere das, das meistens Null ist.

Der gesamte Zweig HKEY_LOCAL_MACHINE wurde jetzt aus einer Unicodedatei mit 340 MiB und 2,5 Mio Zeilen in ca. 9 Sekunden eingelesen, ohne Unicode aus 160 MiB in ca. 6 Sekunden. Und bei normalen kleinen Dateien gibt es keine spürbaren Verzögerungen. Das gilt auch für das Auslesen der Werte. Die Werte sollten stets (auch bei sehr großen Dateien) ohne Verzögerung ausgelesen werden.

Jetzt widme ich mich dann noch der Autocompletion noch einmal, da kommt die dann auch für Registrydateien rein.

Ja, weshalb das jetzt etwas länger gedauert hat (neben anderen Projekten): Ich habe mich doch einmal den .dat Registrydateien gewidmet. Das scheint doch gar nicht so schwer zu sein, nur sehr aufwendig. Es könnte sein, dass auch das bald testweise drin ist, aber bisher gibts noch jede Menge Probleme dabei.


jaenicke - So 19.07.09 23:54

Ich habe zwar nicht viel weiter gemacht, aber die Favoriten sind jetzt soweit vorhanden, es fehlt nur noch nen weiterer Schalter für Favorit / History Unterscheidung. Die werden jetzt auch gespeichert, dafür müssen sie aber einmal gepinnt worden sein, was sie zu Favoriten statt History-Einträgen macht.

Im Moment werden auch Duplikate eingetragen sehe ich gerade, aber jetzt muss ich erst einmal schlafen gehen. ;-)


jaenicke - So 26.07.09 08:57

Es gibt wieder einmal eine neue Version. :D

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Unter XP geht das mit einmal klicken, und so wie's dort gelöst ist, finde ich es auch ok. Das Problem ist nur, dass ein Knoten auch erweitert wird, wenn man über die Tastatur die Nach-unten-Taste drückt
Das ist jetzt behoben. Das Problem war nur, dass ich nichts in der VirtualTreeView ändern wollte. Mit einem kleinen Trick gehts jetzt auch ohne Änderungen daran. Beim Klick auf einen Knoten wird er aufgeklappt, wenn es eingestellt ist, mit der Tastatur nicht.

Weiterhin werden jetzt die meisten Werte schon einmal richtig angezeigt, auch die Typen und Werte in Registrydateien werden größtenteils korrekt erkannt und ausgelesen.

Der Adminmodus funktioniert jetzt ab Windows XP korrekt, unter Windows 2000 wird der Adminbutton einfach immer angezeigt, weil da die Rechteerkennung noch nicht so einfach funktioniert und ich keine Lust habe dafür noch extra Aufwand zu betreiben.

Die Favoriten funktionieren jetzt richtig, man kann per Klick aus einem Historyeintrag einen Favoriten machen und durch einen weiteren Klick diesen festpinnen usw., es fehlen nur noch die entsprechenden Tooltips. Ich denke aber das ist selbsterklärend. ;-)

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Huch! Wieso hab ich das erst jetzt bemerkt? Im VST springt man beim Eintippen eines Anfangsbuchstaben ja gar nicht zum ersten Treffer. Normalerweise gebe ich im Regedit z.B. ".txt" ein, um in HKCR den entsprechenden Dateityp zu markieren - ohne dieses Feature kann man da lang rumsuchen :?
Auch das ist vorbereitet, die Suche muss ich noch umsetzen. Aber von der Funktionalität der Oberfläche ist es erst einmal angefangen. Meintest du das so? ;-)


toms - So 26.07.09 09:11

Manchmal möchte man einen Pfad vom Web per Copy&Paste einfügen. z.B.

\HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\

Idealerweise sollte dann HKCU auch nach HKEY_CURRENT_USER umgewandelt werden, so dass dann keine Fehlermeldung kommt.


jaenicke - So 26.07.09 09:12

Ach ja, beim Einfügen habe ich das vergessen, wenn man selbst tippt, dann klappt das ja (also z.B. CU und dann \, dann wird es ersetzt). Das baue ich beim Einfügen auch noch ein.

Dabei fällt mir ein, dass ich ja auch direkt die Zwischenablage überwachen könnte und wenn ein Pfad erkannt wird anbieten kann den anzuzeigen. Da muss ich noch drüber nachdenken wie das sinnvoll geht, also ohne den Benutzer zu stören. :D


toms - So 26.07.09 09:31

Ein Button "Paste & Go" neben dem Editfeld wäre auch nützlich.


jaenicke - So 26.07.09 10:10

So, done, die Abkürzungen und auch führende Backslashes werden soweit möglich erkannt und umgesetzt. :D

user profile icontoms hat folgendes geschrieben Zum zitierten Posting springen:
Ein Button "Paste & Go" neben dem Editfeld wäre auch nützlich.
Gute Idee, genau. Dafür gibt es jetzt die Tastenkombination Strg + Shift + V und einen entsprechenden Menüeintrag.

Wie ich sowas alles dann in die Oberfläche einfließen lasse, weiß ich noch nicht. Vielleicht als ersten Eintrag in einem Schnellauswahlmenü oder so, aber die Oberfläche kommt dann, wenn die Features da sind. ;-)


BenBE - So 26.07.09 10:36

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Es gibt wieder einmal eine neue Version. :D

Dann gleich mal testen. Testergebnis dann in meinem nächsten Post ...

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Der Adminmodus funktioniert jetzt ab Windows XP korrekt, unter Windows 2000 wird der Adminbutton einfach immer angezeigt, weil da die Rechteerkennung noch nicht so einfach funktioniert und ich keine Lust habe dafür noch extra Aufwand zu betreiben.

Heute im Sonderangebot der Ecke: Pasta Copie Aldente [http://www.delphi-fundgrube.de/faq13.htm].

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Die Favoriten funktionieren jetzt richtig, man kann per Klick aus einem Historyeintrag einen Favoriten machen und durch einen weiteren Klick diesen festpinnen usw., es fehlen nur noch die entsprechenden Tooltips. Ich denke aber das ist selbsterklärend. ;-)

Nene, das glaub ich nicht :mrgreen:

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Huch! Wieso hab ich das erst jetzt bemerkt? Im VST springt man beim Eintippen eines Anfangsbuchstaben ja gar nicht zum ersten Treffer. Normalerweise gebe ich im Regedit z.B. ".txt" ein, um in HKCR den entsprechenden Dateityp zu markieren - ohne dieses Feature kann man da lang rumsuchen :?
Auch das ist vorbereitet, die Suche muss ich noch umsetzen. Aber von der Funktionalität der Oberfläche ist es erst einmal angefangen. Meintest du das so? ;-)

Funktioniert die Navi auch, dass ich wie im Explorer den Anfang eines gesuchten eintrags einfach tippen kann? ALSO im VST wenn HKCR ausgewählt ist ich Rechts, C, L, S eingeben kann und er runter zu CLSID springt?

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Ach ja, beim Einfügen habe ich das vergessen, wenn man selbst tippt, dann klappt das ja (also z.B. CU und dann \, dann wird es ersetzt). Das baue ich beim Einfügen auch noch ein.

Besser is :P

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Dabei fällt mir ein, dass ich ja auch direkt die Zwischenablage überwachen könnte und wenn ein Pfad erkannt wird anbieten kann den anzuzeigen. Da muss ich noch drüber nachdenken wie das sinnvoll geht, also ohne den Benutzer zu stören. :D

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile icontoms hat folgendes geschrieben Zum zitierten Posting springen:
Ein Button "Paste & Go" neben dem Editfeld wäre auch nützlich.
Gute Idee, genau. Dafür gibt es jetzt die Tastenkombination Strg + Shift + V und einen entsprechenden Menüeintrag.

Warum nicht einfach in der Adresszeile einen kleinen Icon analog zur Coolbar vom FF einbauen mit Clipboard-Icon, was immer dann erscheint, wenn er im Clipboard was brauchbares findet. Dann bekommt man das in die Adresse eingefügt und kann dann ggf. gleich noch ne Änderung machen.

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
So, done, die Abkürzungen und auch führende Backslashes werden soweit möglich erkannt und umgesetzt. :D

Beim FF ist das intern über die Favoriten gelöst: Wenn ich http://www.delphi-forum.de mit DF tagge und dann DF eingeb, geht er selbst, ohne dass ich den Eintrag dazu auswähle, zum DF. Da man es bei Registry-Pfaden i.d.R. mit Präfix-Namen zu tun hat, könnte man daher Favoriten auch direkt als solche Präfixe nutzen und somit z.B. WIN (Favorit auf HKLM\Software\Microsoft\Windows\CurrentVersion) z.B. mit WIN\Explorer auf den entsprechenden Subzweig verweisen lassen.

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Wie ich sowas alles dann in die Oberfläche einfließen lasse, weiß ich noch nicht. Vielleicht als ersten Eintrag in einem Schnellauswahlmenü oder so, aber die Oberfläche kommt dann, wenn die Features da sind. ;-)

Naja, paar Vorschläge habsch ja gegeben ;-)


BenBE - So 26.07.09 10:45

Der Test muss derzeit etwas kürzer ausfallen, da ich das Programm nicht gestartet bekomm:

Beim Start wenn er wegen Konfig fragt:
- Erweitert
- Wo --> Nach Registry
- Art auf XML lassen
- Vor Install fragen

Quelltext
1:
2:
3:
4:
5:
6:
7:
---------------------------
Regeditxtreme
---------------------------
Unable to create directory.
---------------------------
OK   
---------------------------


Schließe ich das Fenster über das X kommt eine Sicherheitsabfrage:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
---------------------------
Einrichtung abbrechen?
---------------------------
Soll die Einrichtung wirklich abgebrochen werden?

In dem Fall werden Standardeinstellungen geladen, die nur für diese Sitzung gelten. 
Diese werden nirgends gespeichert und beim nächsten Start erscheint dieser Dialog erneut!
---------------------------
Ja   Nein   Abbrechen   
---------------------------

- Mit Ja beantworten und man bekommt den RegX nicht beendet, weil gleiche Meldung
- Mit Nein antworten, und er geht auch nicht zu beenden
- Mit Abbrechen startet sich RegX. Gleiche Konsequenz wie bei den anderen Optionen.

Getestet mit Win2K. Hab Admin-Rechte.

Was lernen wir daraus:
- Aussagekräftige Fehlermeldungen bauen
- Buttons sollten eine unterscheidbare Funktion haben
- Das Programm sollte logisch reagieren

Viel Spaß :P

Edit: Ach ja, geht noch weiter:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
---------------------------
Fehler beim Öffnen des Schlüssels
---------------------------
Das Öffnen des Schlüssels

  "HKEY_CLASSES_ROOT\clsID\{00000514-0000-0010-8000-00AA006D2EA4}\"

ist fehlgeschlagen!
---------------------------
OK   
---------------------------


Den Schlüssel hat er mir in der AutoVervollständigung aber angeboten und dieser existiert auch.


jaenicke - So 26.07.09 11:04

user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Der Test muss derzeit etwas kürzer ausfallen, da ich das Programm nicht gestartet bekomm:
Autsch, da muss ich meine ConfigUtils nachbessern, da ist ne kleine Falle drin, in die ich bei der Implementierung in diesem Projekt selbst getappt bin. Und im Periodensystem noch dazu auch. :oops:

Ist halt schlecht, wenn man auf der Festplatte in nem Registrypfad ne XML-Datei speichern will. ;-)

user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Edit: Ach ja, geht noch weiter:
Da muss ich einmal schauen was da schief laufen kann. Ich hoffe ich habe da nicht gerade selbst nen Fehler eingebaut als ich das Einfügen usw. eingebaut habe. :gruebel:

user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Heute im Sonderangebot der Ecke: Pasta Copie Aldente [http://www.delphi-fundgrube.de/faq13.htm].
Ja, danke. Ich weiß schon, dass es da was fertiges gibt. Aber das muss ich dann erst noch testen, ob das immer klappt usw., deshalb habe ich es lieber so gelassen. Denn besser der Button ist immer da als dass er mal fehlt. ;-)

user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Funktioniert die Navi auch, dass ich wie im Explorer den Anfang eines gesuchten eintrags einfach tippen kann? ALSO im VST wenn HKCR ausgewählt ist ich Rechts, C, L, S eingeben kann und er runter zu CLSID springt?
Noch nicht, aber so ist es gedacht, ich muss dafür aber zuerst eine schnelle Suche auch da einbauen, und idealerweise eine "ghostmarkierung" oder so statt direkter Fokussierung hinbekommen. Mal schauen. ;-)

user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Naja, paar Vorschläge habsch ja gegeben ;-)
Ja, da werde ich mir später einmal eine schöne Oberfläche überlegen. Aber erst einmal muss es funktionieren, sonst wird die Oberfläche nix. :mrgreen:


BenBE - So 26.07.09 11:24

Bei dem Schlüssel, den ich geöffnet hab, muss man dazu sagen, dass ich die 5 führenden 0en eingegeben hab, danach Enter. Und die unsortierten Vorschläge sind auch recht gewöhnungsbedürftig ;-)

Schau dir mal DAWGs an; die könnten hier wahre Wunder wirken

Ach ja: Wie schaut es aus mit Registry-Schlüsseln mit einem Nullbyte am Ende? (Windows hat da so nen schönen Key ;-))


jaenicke - So 26.07.09 12:31

user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Bei dem Schlüssel, den ich geöffnet hab, muss man dazu sagen, dass ich die 5 führenden 0en eingegeben hab, danach Enter. Und die unsortierten Vorschläge sind auch recht gewöhnungsbedürftig ;-)
Ja, genau das ist mein Problem. Ich habe mittlerweile die Dokumentation genauer angeschaut. Und dabei habe ich ein Riesenproblem festgestellt...
http://msdn.microsoft.com/en-us/library/ms724862.aspx hat folgendes geschrieben:
Because subkeys are not ordered, any new subkey will have an arbitrary index. This means that the function may return subkeys in any order.
Das wiederum bedeutet, dass ich wirklich alle Schlüssel auslesen und selbst sortieren muss.

Ich muss also insgesamt auf einen asynchronen Ansatz setzen um eine wirklich gute Geschwindigkeit hinzubekommen. Da muss ich mir einen guten Suchalgorithmus überlegen, der schnell bei halbwegs sortierten Einträgen ist, gleichzeitig fehlertolerant, wenn die Sortierung nicht ganz stimmt, und trotzdem alles findet...


BenBE - So 26.07.09 12:39

Dann könnten DAWGs für dich interessant sein. Die kann man schnell erzeugen, dabei gleich sortieren UND extrem schnell auslesen. Und dabei benötigen die extrem wenig Speicher.

Grobe Einordnung: Schlüssel finden im Worstcase O(n*m), wobei n die Länge des Namens und m die Anzahl unterschiedlicher Zeichen ist. das Eintragen analog. je nach dem, wie man sich die Struktur baut, kann man aber auch auf O(n*ln(m)) als Worstcase kommen.


jaenicke - So 26.07.09 12:47

Das werde ich mir einmal anschauen, hört sich ja interessant an. Da ich nicht besonders viel Zeit habe im Moment, mal schauen, wann ich dazu komme. Das hängt ja alles mit anderen Problemen (autocomplete für .reg Dateien z.B.) zusammen, insofern wird dann eine Lösung dafür gleich noch mehr bewirken. :D

// EDIT:
Ich habe das einmal provisorisch gefixt, es sollte jetzt kaum noch einen Fall geben wo es nicht klappt. Die Eingabevervollständigung wird aber nicht unbedingt alle Einträge finden.


Yogu - Mo 27.07.09 19:31

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Huch! Wieso hab ich das erst jetzt bemerkt? Im VST springt man beim Eintippen eines Anfangsbuchstaben ja gar nicht zum ersten Treffer.
Das habe ich nie benutzt im Registryeditor, ist aber eine gute Idee. Das werde ich glaube ich am besten über ein ausklappendes Minisuchfeld lösen wie auch in Browsern bei der Suche auf der Seite.

Hm, das ist nicht so ganz das, was ich mir wünsche. Schau dir mal IncrementalSearch des VST an. Das brauchst du nur einzuschalten, es müsste gleich funktionieren. user profile iconBenBE hat es ganz gut beschrieben:

user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Funktioniert die Navi auch, dass ich wie im Explorer den Anfang eines gesuchten eintrags einfach tippen kann? ALSO im VST wenn HKCR ausgewählt ist ich Rechts, C, L, S eingeben kann und er runter zu CLSID springt?


Das mit dem One-Click-Select ist ganz gut gelöst, damit bin ich zu frieden :)

Kannst du vielleicht das Icon-Blending abschalten? Ist irgendwo bei PaintOptions. Zumindest unter Windows XP werden die Bilder nicht wirklich geblendet, sondern es wird so ein komisches "Sieb" darübergelegt - und das sieht ziemlich doof aus.

Wie wär's mit einer ScrollBar in den Favoriten? Oder zumindest sollte der untere Eintrag sauber abgeschnitten werden und nicht noch halb angezeigt werden. Noch schöner wäre natürlich ein eigenes Fenster wie im Firefox in der Adresszeile, das dann auch einen DropShadow bekommen kann.

Soll die Adresszeile eigentlich unten bleiben? Ich wäre dafür, sie nach oben zu verlagern und die Favoriten dort einzubauen. Aber das ist sicher schon geplant, oder?

Das war wieder einiges, aber du hast schon wirklich viel geleistet, Noch ein paar Features mehr, und der alte RegEdit ist geschichte :evil:


jaenicke - Mo 27.07.09 23:08

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Schau dir mal IncrementalSearch des VST an. Das brauchst du nur einzuschalten, es müsste gleich funktionieren.
Was gemeint war, ist mir schon klar, aber da die Inhalte der Knoten außerhalb des Sichtfeldes noch gar nicht feststehen, wird das wohl schlecht funktionieren. ;-)
(Ich schaue es mir aber schon einmal an.)

Sobald die asynchrone Füllung und Sortierung dieser Knoten da ist, wird das aber gehen.

Was die Oberfläche angeht (hier die Favoriten): Das steht wie gesagt hintenan, natürlich soll das noch richtig und auch graphisch schöner aussehen. Aber das kommt erst später. ;-)


Yogu - Di 28.07.09 15:40

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Schau dir mal IncrementalSearch des VST an. Das brauchst du nur einzuschalten, es müsste gleich funktionieren.
Was gemeint war, ist mir schon klar, aber da die Inhalte der Knoten außerhalb des Sichtfeldes noch gar nicht feststehen, wird das wohl schlecht funktionieren. ;-)

Das VST wird auch die Daten verwenden, die noch nicht angezeigt wurden. Per OnGetText können die ja einfach ermittelt werden. Der einzige Nachteil ist nur, dass das ganze case-intensive ist; man also bei großgeschriebenen Keys immer einen großen Anfangsbuchstaben eintippen muss.

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
(Ich schaue es mir aber schon einmal an.)

Mach das bitte!

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Sobald die asynchrone Füllung und Sortierung dieser Knoten da ist, wird das aber gehen.

Klingt nach tollen neuen Features :D

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Was die Oberfläche angeht (hier die Favoriten): Das steht wie gesagt hintenan, natürlich soll das noch richtig und auch graphisch schöner aussehen. Aber das kommt erst später. ;-)

So is' richtig, immer der Reihe nach ;)


jaenicke - Di 28.07.09 22:01

user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Das VST wird auch die Daten verwenden, die noch nicht angezeigt wurden. Per OnGetText können die ja einfach ermittelt werden.
Ganz genau. Und dafür muss der Knoten initialisiert werden. Genau das passiert im Moment erst, wenn man scrollt und der Knoten auch angezeigt wird. ;-)
Vorher ist der Knoten nur "der xte Unterschlüssel von Schlüssel xy", mehr nicht. :mrgreen:


Yogu - Mi 29.07.09 11:18

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Das VST wird auch die Daten verwenden, die noch nicht angezeigt wurden. Per OnGetText können die ja einfach ermittelt werden.
Ganz genau. Und dafür muss der Knoten initialisiert werden. Genau das passiert im Moment erst, wenn man scrollt und der Knoten auch angezeigt wird. ;-)
Vorher ist der Knoten nur "der xte Unterschlüssel von Schlüssel xy", mehr nicht. :mrgreen:

Ach so, ich dachte, du initialisierst die Knoten beim ersten OnGetText.


BenBE - Sa 02.10.10 19:58

Feature Request:
- Lesen/Schreiben von DAT/Hive Files
- Umgang auch mit ggf. beschädigten Files (Testsubjecte hätte ich da, falls benötigt)

BTW: Wie steht's eigentlich um dieses Projekt?


jaenicke - Sa 02.10.10 20:30

Ja, das Lesen von den .dat Dateien hatte ich schon angefangen.

Ich komme aber nicht wirklich dazu ernsthaft an den Projekten zu arbeiten. Im Moment bin ich an anderen dran. Bis ich von dem Registryeditor eine Produktivversion veröffentlichen kann wird es noch länger dauern.


Martok - Sa 29.10.11 14:55

Ob man nach einem Jahr mal anfragen darf :gruebel: Ach klar 8)

Ich hätte grad echt gute Verwendung für das Ding, besonders
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Ja, das Lesen von den .dat Dateien hatte ich schon angefangen.


Hast du irgendwann mal Zeit dafür gefunden?


jaenicke - Sa 29.10.11 19:49

Ich habe es bisher nicht eingebaut, nein. Es funktioniert auch noch nicht wirklich gut. Vor einer Bearbeitung solcher Dateien bin ich also noch weit entfernt.

Das liegt im Moment vor allem daran, dass ich eher mit Technologien wie DataSnap, Crosscompiling zum Mac, FireMonkey, ... experimentiere und nicht mehr so viel an Projekten wie diesem arbeite. Deshalb kann ich auch wenig Hoffnung machen, dass ich für meine Projekte bald Weiterentwicklungen veröffentlichen kann.


BenBE - Mo 04.06.12 17:51

Gibt es eigentlich Informationen um den Stand der Weiterentwicklung? Insbesondere in Hinblick auf das Schreiben der normalen Registry oder zum Exportieren von Keys. Auch ein "Mehrfenster--Modus" wäre interessant, um z.B. Keys aus einer Registry-File in die normale Registry einzupflegen oder mehrere Registry-Dateien zu mergen.

Gruß,
BenBE.

P.S.: Unter Win7 stürzte mir das Programm vorhin ab, wenn ich vom unprivilegierten Modus in den Editiermodus gewechselt bin, weil sich der unprivilegierte Prozess nicht rechtzeitig beendet hatte. Starte ich direkt als Admin gings.


jaenicke - Mo 04.06.12 18:27

user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Gibt es eigentlich Informationen um den Stand der Weiterentwicklung?
Ja, es gibt keine, jedenfalls nicht öffentlich. ;-)
Ich habe einfach zu wenig Zeit dafür.

Ich bin allerdings seit einigen Tagen dabei meine Quelltexte neu aufzuräumen und zu reorganisieren. Könnte sein, dass da noch was rausfällt. Aber nennenswerte Fortschritte sehe ich bei meinen Open Source Projekten derzeit nicht in Sicht. Leider.