| Autor |
Beitrag |
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Di 09.06.09 11:07
hmmm, bringt mich auf die Idee: Funktionalität von RegMon (Beobachten der Registry-Zugriffe) so einbinden, dass ich eine Baumstruktur der zugegriffenen Werte hab. Bei RegMon ist das immer etwas unübersichtlich in den Logfiles. Sprich Art virtueller Hive der durch ein Programm gelesenen\geschriebenen Keys.
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
jaenicke 
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 09.06.09 11:10
Da müsste ich mir die Notifier einmal genauer anschauen. Ich hatte eigentlich nur vor die direkt geöffneten Zweige ohne Unterzweige zu überwachen. Für diese Funktion müsste ich ja alles überwachen.
Ich bin mir nicht sicher wie das mit der Performance aussieht. 
|
|
Nersgatt
      
Beiträge: 1581
Erhaltene Danke: 279
Delphi 10 Seattle Prof.
|
Verfasst: Di 09.06.09 11:13
Bei einer Suchfunktion alle gefundenen Stellen in einem extra Fenster darstellen, um nicht mit F3 durch die Suchergebnisse durchsteppen zu müssen, sondern sie im Überblick zu haben. Mit Klick auf die Funstelle dann automatisch zur entsprechenden Stelle springen.
Und Bookmarks!
_________________ Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
|
|
jaenicke 
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 09.06.09 11:27
Nersgatt hat folgendes geschrieben : | | Bei einer Suchfunktion alle gefundenen Stellen in einem extra Fenster darstellen, um nicht mit F3 durch die Suchergebnisse durchsteppen zu müssen, sondern sie im Überblick zu haben. Mit Klick auf die Funstelle dann automatisch zur entsprechenden Stelle springen. |
Ja, so hatte ich das bei meinem alten Editor auch gemacht, da wurde ein entsprechendes Fenster angezeigt, das normalerweise gedockt war.
Im Moment probiere ich gerade ein wenig aus wie das mit dem Eingabefeld laufen könnte. Und danach kommt erstmal mein Updater Projekt dran, das endlich fertig werden soll.
|
|
jaenicke 
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 11.06.09 19:58
So, neben anderen Experimenten habe ich mal eine Autocomplete Klasse gebastelt. Die habe ich mal in das vorherige Testprogramm eingesetzt.
Die Verbindung mit dem Rest ist noch nicht vorhanden, es wird einfach nur in der Statusleiste eine Autocompletion gemacht, mehr nicht. Escape bricht die Eingabe ab, Return bestätigt diese. Mit \ kann man einen vorgeschlagenen Eintrag bestätigen und weiter eingeben.
Egal ob HKEY_LOCAL_MACHINE, HKLM, LM oder das alles kleingeschrieben, es wird alles erkannt.
Die Verknüpfung der einzelnen Tests kommt dann erst im echten Projekt, das sind erstmal nur einzelne Tests und Klassen.
Einloggen, um Attachments anzusehen!
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Do 11.06.09 21:23
Zwei wünschenswerte Änderungen: Tab zum Übernehmen und bitte die Einträge sortiert vorschlagen. Ansonsten aber wirklich schon recht schnell
Ein Bug ist aber noch drin: Wenn ich HKCR\CLSID\{000000 eingeb, meint er, es gibt keinen Schlüssel, obwohl es (Beim Öffnen des CLSID-Schlüssels) einen Knoten {00000020-...} gibt.
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
Popov
      
Beiträge: 1655
Erhaltene Danke: 13
WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
|
Verfasst: Do 11.06.09 21:40
Noch eine Idee. Was ich bei jetzigen Regedit vermisse ist der direkte Sprung in einen Schlüssel. Nehmen wir an man kriegt im Internet einen Tipp mit diesem Pfad:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
Dann muß man sich bei Regedit einzeln durchklicken bis man bei Run ankommt. Eine Adressenzeile wie beim Explorer wäre nett, d.h. man gibt den Pfad ein und das Programm springt in den richtigen Schlüssel.
_________________ Popov
|
|
jaenicke 
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 11.06.09 21:43
BenBE hat folgendes geschrieben : | | Zwei wünschenswerte Änderungen: Tab zum Übernehmen |
Das ist kein Problem, hatte ich auch schon vor.
BenBE hat folgendes geschrieben : | und bitte die Einträge sortiert vorschlagen. Ansonsten aber wirklich schon recht schnell  |
Genau die Schnelligkeit ist das Problem. Ich habe jetzt eine binäre Suche benutzt. Diese findet aber eben einen zufälligen passenden Eintrag.
Das heißt ich müsste nochmal rückwärts eine modifizierte binäre Suche bis zum ersten passenden Eintrag machen oder sowas.
Mal sehen, vielleicht gibts da ja auch was fertiges, ich hatte erstmal nur die binäre Suche dafür im Kopf.
Das Problem ist nämlich, dass es sonst bei den tausenden Einträgen unter HKCR deutliche Eingabeverzögerungen gäbe, wenn ich eine sequentielle Suche machen würde.
BenBE hat folgendes geschrieben : | | Ein Bug ist aber noch drin: Wenn ich HKCR\CLSID\{000000 eingeb, meint er, es gibt keinen Schlüssel, obwohl es (Beim Öffnen des CLSID-Schlüssels) einen Knoten {00000020-...} gibt. |
Das muss ich mir mal anschauen. Ich habe auch beim Schließen von Knoten (wo ich auch den Registryschlüssel wieder freigebe) schon Schutzverletzungen beobachtet, da bin ich dabei das Problem zu isolieren. Vor ein paar Minuten konnte ich das an einer Stelle reproduzierbar hinbekommen, deshalb werde ich das sicher bald finden.
Popov hat folgendes geschrieben : | | Eine Adressenzeile wie beim Explorer wäre nett, d.h. man gibt den Pfad ein und das Programm springt in den richtigen Schlüssel. |
Genau das gibts ja. Einfach in die Statusleiste klicken, einfügen, fertig. Nur angesprungen wird das wie gesagt noch nicht, da ich da erst die getesteten Einzelteile zusammenfügen muss.
|
|
Regan
      
Beiträge: 2157
Erhaltene Danke: 72
Java (Eclipse), Python (Sublimetext 3)
|
Verfasst: Do 11.06.09 22:08
Ich weiß nicht, ob das schon genannt wurde, aber ich würde gern die Exportfunktion verbessert haben. So etwas in der Art "RegKey-Korb" (ähnlich dem PDF-Korb), man wählt dann alle Einträge aus und erstellt zum Schluss dann eine einzige Datei.
Dann wäre noch eine Art "Aufzeichnen"-Funktion gut. D. h. ich starte ein Programm. Dieses greift auf verschiedene Schlüssel zu. Diese sollte sich das Programm merken und dann zum Beispiel in den RegKey-Korb werfen.
|
|
jaenicke 
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 11.06.09 22:30
Regan hat folgendes geschrieben : | | Ich weiß nicht, ob das schon genannt wurde, aber ich würde gern die Exportfunktion verbessert haben. So etwas in der Art "RegKey-Korb" (ähnlich dem PDF-Korb), man wählt dann alle Einträge aus und erstellt zum Schluss dann eine einzige Datei. |
Ja, das wird sicher gehen, denn mit dem Formar für Registrydateien muss ich mich ohnehin noch genauer auseinandersetzen.
Regan hat folgendes geschrieben : | | Dann wäre noch eine Art "Aufzeichnen"-Funktion gut. |
Sowas gibts ja schon, aber werde ich versuchen einzubauen. So ein diff zwischen verschiedenen Daten, nicht notwendigerweise nur auf die Registry und Änderungen daran bezogen, sondern auch von einer Datei zur Registry und so.
Aber da muss ich die Architektur noch entsprechend entwerfen, dass das nahtlos eingeklinkt werden kann.
|
|
jaenicke 
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 12.06.09 01:24
Ok, also ich fasse einmal das ganze zu einem groben Umriss zusammen: - Als Datenquelle für den Baum sind die lokale Registry, eine Remoteregistry und eine .reg Datei möglich. Die Features sind unabhängig von der aktuellen Datenquelle.
- Gestartet wird mit normalen Rechten, zum Editieren werden ggf. Adminrechte angefordert.
- Angaben von anderen Registryzweigen, Dateien, Verzeichnissen usw. werden entsprechend behandelt und verlinkt. Zum Ändern gibt es entsprechende Auswahldialoge.
- Auf Wunsch wird der Quelltext für verschiedene Sprachen erzeugt, der zum Auslesen / Schreiben selektierter Angaben notwendig ist. (Nicht für .reg Dateien)
- Benutzerdefinierte Suche (Auswahl der zu durchsuchenden Zweige, genaue Optionen vs. schnelle Optionen, evtl. Regular Expressions)
- Eingabeleiste zum Kopieren und Einfügen inkl. automatischer Vervollständigung
- Favoritenfunktion, evtl. direkt in die Status- und Eingabeleiste integriert
- Kommandozeileninterface
- Drag-and-Drop, verschieben, umbenennen von Schlüsseln
- Sicheres Löschen (es wird eine .reg Datei zum Wiederherstellen, ggf. auch aus der Kommandozeile, erstellt)
- Diff-Funktion: Zweige, auch aus unterschiedlichen Datenquellen, vergleichen. Snapshotmöglichkeit zum späteren Vergleich. Differenzen als .reg-Datei exportierbar.
- Schnelles Wechseln zwischen (speicherbaren) Sets von Schlüsseln
- Überwachung auf Änderungen (evtl. aus Performancegründen in begrenztem Umfang)
- Pluginsystem für die Erweiterung von "intelligentem" Umgang mit speziellen Schlüsseln
Was ich zunächst nicht plane: - Auslesen einer .dat Datei: Das ist einfach zu viel Arbeit, auch wenn es schön wäre. Wenn ich die Klassenstruktur soweit habe und eine erste Testversion soweit habe, kann da aber gerne jemand dran arbeiten. Die nötigen Informationen habe ich größtenteils gefunden, dabei aber eben gesehen, dass es zunächst zu viel Arbeit für mich wäre.
 Narses hat folgendes geschrieben : | Popov hat folgendes geschrieben : | | Aber was ich bei der normalen Regedit vermisse ist, eine Reg-Dat aus dem Backup zu öffnen, also nicht die gerade benutzte, sondern auch eine externe. | Das wäre allerdings mal was, da kenne ich bisher auch nur Gurkentools...  | Stimmt, für später kann ich mir das auch vorstellen das anzugehen, wenn der Rest funktioniert und sich sonst niemand gefunden hat.
- Überwachung bestimmter Programme auf Änderungen: Das liefe auf ein Hooken der entsprechenden Funktionen in dem Prozess und dem zusammenbasteln der so gewonnenen Infos heraus. Das ist für den Anfang zu viel Arbeit.
Was genauerer Überlegung bedarf: BenBE hat folgendes geschrieben : | | - GUID\CLSID\IID-Linking (Infos über die Keys, Welches Programm, ist das Teil gültig, ..) | Da ist mir derzeit noch nicht klar, was es da alles gibt. Also welche Funktionalitäten entsprechende Plugins dafür anbieten könnten und dementsprechend wie da eine Schnittstelle aussehen könnte.
Aber ich kann ja erst einmal die Vorgehensweise bei der Schlüsselverlinkung und Datei- und Pfadbehandlungen überdenken und dann darauf zurückkommen.
- Die Möglichkeiten, die ein Skripting und die Kommandozeilenfeatures haben sollten (bei letzterem vor allem in Hinblick auf die integrierten Möglichkeiten der neuen Kommandozeilen von Windows XP und so)
|
|
Boldar
      
Beiträge: 1555
Erhaltene Danke: 70
Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
|
Verfasst: Fr 12.06.09 23:40
Ich fände es noch toll, wenn du eine Schnittstelle zum Einbinden deiner Funktionen in anderen Programme anbieten könntest, also dass man sich dass in seine Lieblingsanwendung integrieren kann.
(z.B. dll bereitstellen)
mfg Boldar
|
|
jaenicke 
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 12.06.09 23:50
Das meiste sind ja Funktionen, die direkt mit der Oberfläche zusammenhängen, was meinst du denn so für Funktionen? Also was meinst du wäre denn interessant daran?
Denn ich nutze ja im Grunde auch nur die normalen Registryfunktionen und ich kann mir gerade nicht viel vorstellen, was sinnvoll wäre in eigenen Programmen.
Prinzipiell wäre das sicher denkbar, aber wohl eher sinnvoll in Units als in DLLs (es sei denn es geht auch um andere Sprachen als Delphi).
|
|
Boldar
      
Beiträge: 1555
Erhaltene Danke: 70
Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
|
Verfasst: Sa 13.06.09 10:28
units währen sicherich noch optimaler, aber ich habe nun nicht verlangen wollen, dass du den Quelltext offenlegst.
Interessant währe dann zum Beispiel die optimierte Suche, die Autovervollständigung usw.
Ich nutze beispielsweise eine Sidebar mit einem eingabefeld ( hier ist eine alte version) und dwürde das dann gerne in dass eingabefeld integrieren.
Allerdings:
Bei sovielen Programme, wie du schon (hier für uns) programmiert hast, könntest du villeicht auch darüber nachdenken, in allen (zukünftigen)(und sinnvollen) eine (von dir) standartisierte Schnittstelle zur Verfügung zu stellen, sei es über dll's,
oder über Kommandozeilenparameter, oder über messages.
mfg Boldar
|
|
jaenicke 
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 13.06.09 10:33
Boldar hat folgendes geschrieben : | units währen sicherich noch optimaler, aber ich habe nun nicht verlangen wollen, dass du den Quelltext offenlegst.
[...]
Bei sovielen Programme, wie du schon (hier für uns) programmiert hast, könntest du villeicht auch darüber nachdenken, in allen (zukünftigen)(und sinnvollen) eine (von dir) standartisierte Schnittstelle zur Verfügung zu stellen |
Alle diese Programme sind ja Open Source. Das heißt unter den Bedingungen der GPL, LGPL oder MPL kann jeder den Code direkt verwenden, da braucht es gar keine Schnittstelle.  So kann man den Code auch direkt in die Exe einbinden und muss nicht noch DLLs mitliefern.
Und auch dieses Programm wird wieder Open Source, wie die anderen auch alle.
Grundsätzlich modularisiere ich ja alles sehr stark (die Eingabevervollständigung ist auch in Klassen gekapselt), so dass sich die meisten Sachen relativ einfach auf eigene Problemstellungen anpassen lassen sollten.
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Sa 13.06.09 12:09
Hallo,
erstmal: geniale Idee, ich wollte auch mal einen Registry-Editor bauen, bin aber nicht weit gekommen.  Mach da auf jeden Fall, ich werd's brauche können!
Was ich damals einbauen wollte, war eine Art Papierkorb. Das heißt, dass man Werte oder Keys einfach löschen kann, ohne sich groß Sorgen machen zu müssen - denn sie werden vorher in eine .reg-Datei geschrieben und in einem virtuellen HKEY, dem Papierkorb, angezeigt. Das könnte man parallel zum angesprochenen .reg-Visualizer machen.
Dann nehm bitte noch die Standard-Windows-Symbole für Ordner und Arbeitsplatz, die sehen im Regedit schrecklich aus
Und du verwendest doch hoffentlich das Virtaual Treeview, oder? Dort kann man nämlich auch mit einem Druck auf die mittlere Maustaste scrollen, das wäre wichtig für mich.
Noch was: Eine Zwischenablage wie in Microsoft Office, so dass man mehrere Werte oder Schlüssel gleichzeitig kopieren / ausschneiden und nachher einfügen kann.
Aber übernimm dich nicht, lieber etwas weniger Features und eine saubere Programmierung, als Käse
Grüße,
Yogu
|
|
jaenicke 
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 13.06.09 12:30
Yogu hat folgendes geschrieben : | | Was ich damals einbauen wollte, war eine Art Papierkorb. Das heißt, dass man Werte oder Keys einfach löschen kann, ohne sich groß Sorgen machen zu müssen - denn sie werden vorher in eine .reg-Datei geschrieben und in einem virtuellen HKEY, dem Papierkorb, angezeigt. |
Siehe: jaenicke hat folgendes geschrieben : | | Sicheres Löschen (es wird eine .reg Datei zum Wiederherstellen, ggf. auch aus der Kommandozeile, erstellt) |
Das Einklinken dieser Dateien hatte ich nicht als Papierkorb überlegt, die Idee gefällt mir aber. Mal schauen. Es sollte auch nicht viel Arbeit machen denke ich.
Yogu hat folgendes geschrieben : | Dann nehm bitte noch die Standard-Windows-Symbole für Ordner und Arbeitsplatz, die sehen im Regedit schrecklich aus  |
Da habe ich ganz andere vor, die je nach Inhalt anders aussehen sollen. Und die auch gut aussehen.
Yogu hat folgendes geschrieben : | | Und du verwendest doch hoffentlich das Virtaual Treeview, oder? |
Natürlich, was sonst.
Nur so klappt das überhaupt, dass das so sehr viel schneller als regedit ist.
Yogu hat folgendes geschrieben : | | Noch was: Eine Zwischenablage wie in Microsoft Office, so dass man mehrere Werte oder Schlüssel gleichzeitig kopieren / ausschneiden und nachher einfügen kann. |
Man kann einfach CheckBoxen einblenden und mehrere Schlüssel markieren um diese in eine Registrydatei zu exportieren. Und da ist natürlich auch Kopieren möglich.
Yogu hat folgendes geschrieben : | Aber übernimm dich nicht, lieber etwas weniger Features und eine saubere Programmierung, als Käse  |
Ich versuche immer modular und sauber zu programmieren. Zuerst kommt die strukturelle Planung, dann die Grundimplementierung, und dann der Reihe nach die Features.
Heißt: Das Projekt wird mit der Zeit wachsen, ich werde bestimmt nicht alle Features irgendwie hinschludern und gleichzeitig hinklatschen. 
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Sa 13.06.09 12:54
jaenicke hat folgendes geschrieben : | Yogu hat folgendes geschrieben : | | Was ich damals einbauen wollte, war eine Art Papierkorb. Das heißt, dass man Werte oder Keys einfach löschen kann, ohne sich groß Sorgen machen zu müssen - denn sie werden vorher in eine .reg-Datei geschrieben und in einem virtuellen HKEY, dem Papierkorb, angezeigt. | Siehe: jaenicke hat folgendes geschrieben : | | Sicheres Löschen (es wird eine .reg Datei zum Wiederherstellen, ggf. auch aus der Kommandozeile, erstellt) |
Das Einklinken dieser Dateien hatte ich nicht als Papierkorb überlegt, die Idee gefällt mir aber. Mal schauen. Es sollte auch nicht viel Arbeit machen denke ich. |
Ok, ich hab jetzt nicht die kompletten 2 Seiten durchgelesen, und deinen zusammenfassenden Beitrag hab ich erst danach gesehen.
jaenicke hat folgendes geschrieben : | Yogu hat folgendes geschrieben : | Dann nehm bitte noch die Standard-Windows-Symbole für Ordner und Arbeitsplatz, die sehen im Regedit schrecklich aus  | Da habe ich ganz andere vor, die je nach Inhalt anders aussehen sollen. Und die auch gut aussehen.  |
Genehmigt
--- Moderiert von Narses: Beiträge zusammengefasst---
Ich hoffe mal, dass das noch nicht geschrieben wurde, aber eine schnelle Suche im Topic hat keine Treffer ergeben.
Schön wäre ein Eingabefeld (kann auch die Adressleiste sein), in das man etwas wie "STRING name=value" eingeben kann. Dieser Befehl wird dann geparst und fügt in diesem Fall einen String-Wert mit dem Namen "name" und dem Wert "value" ein. Existiert er bereits, wird er überschrieben (ggf. mit Bestätigung). "DELETE name" löscht den Wert bzw. Schlüssel, "ADD key" erstellt den Key "key" usw. Dann noch eine Tastenkombination wie im FF die F6 zum Springen in die Adressleiste, und ich bin überglücklich
Sowas in der Art gibt's übrigens schon von haus aus, wie ich neulich irgendwo gelesen habe. Im Ausführen-Fenster kann man einfach "REG DELETE HKCU\bla" eingeben und in einer Eingabeaufforderung bestätigen. Ist etwas umständlich, aber in deinem Programm könnte man das besser implementieren.
|
|
jaenicke 
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 14.06.09 00:16
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: So 14.06.09 00:39
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
|