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:- 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.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:
- Im Key HKEY_CURRENT_CONFIG\System\CurrentControlSet\Control\Print\Printers\ gibt's Probleme:
- Erstens gibt es unendlich viele leere untergeordnete Schlüssel (siehe Anhang).
- 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").
- Wenn ich "\" drücke, hängt sich das Programm auf
- Wenn ich die angehängte .reg-Datei öffne, hagelte es beim esten öffnen Zugriffsverletzungen, und zwar immer in einem OnPaint oder so. Als ich die weggekriegt hab, habe ich eine ShowMessage-Meldung mit dem Text "1". Nur so zur Info, falls du die vergessen hast :P
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
Yogu hat folgendes geschrieben : |
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?
Yogu hat folgendes geschrieben : |
Wenn ich "\" drücke, hängt sich das Programm auf |
Wo drückst du das? Nicht in dem Edit unten sondern irgendwo?
Yogu hat folgendes geschrieben : |
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
jaenicke - Fr 19.06.09 21:47
Regan hat folgendes geschrieben : |
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.
Yogu hat folgendes geschrieben : |
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
Yogu hat folgendes geschrieben : |
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:
jaenicke hat folgendes geschrieben : |
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. ;-)
Yogu hat folgendes geschrieben : |
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
Martok hat folgendes geschrieben : |
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.
Martok hat folgendes geschrieben : |
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.
Martok hat folgendes geschrieben : |
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.
Martok hat folgendes geschrieben : |
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
jaenicke hat folgendes geschrieben : |
Martok hat folgendes geschrieben : | 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.
Yogu hat folgendes geschrieben : |
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.
Yogu hat folgendes geschrieben : |
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.
Yogu hat folgendes geschrieben : |
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.
BenBE hat folgendes geschrieben : |
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
Yogu hat folgendes geschrieben : |
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. ;-)
Yogu hat folgendes geschrieben : |
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
toms hat folgendes geschrieben : |
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
jaenicke hat folgendes geschrieben : |
Es gibt wieder einmal eine neue Version. :D |
Dann gleich mal testen. Testergebnis dann in meinem nächsten Post ...
jaenicke hat folgendes geschrieben : |
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].
jaenicke hat folgendes geschrieben : |
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:
jaenicke hat folgendes geschrieben : |
Yogu hat folgendes geschrieben : | 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?
jaenicke hat folgendes geschrieben : |
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
jaenicke hat folgendes geschrieben : |
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 |
jaenicke hat folgendes geschrieben : |
toms hat folgendes geschrieben : | 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.
jaenicke hat folgendes geschrieben : |
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.
jaenicke hat folgendes geschrieben : |
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
BenBE hat folgendes geschrieben : |
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. ;-)
BenBE hat folgendes geschrieben : |
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:
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. ;-)
BenBE hat folgendes geschrieben : |
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. ;-)
BenBE hat folgendes geschrieben : |
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
BenBE hat folgendes geschrieben : |
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...
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
jaenicke hat folgendes geschrieben : |
Yogu hat folgendes geschrieben : | 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.
BenBE hat es ganz gut beschrieben:
BenBE hat folgendes geschrieben : |
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
Yogu hat folgendes geschrieben : |
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. ;-)
jaenicke - Di 28.07.09 22:01
Yogu hat folgendes geschrieben : |
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
jaenicke hat folgendes geschrieben : |
Yogu hat folgendes geschrieben : | 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
jaenicke hat folgendes geschrieben : |
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
BenBE hat folgendes geschrieben : |
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.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!