Entwickler-Ecke

Open Source Projekte - CommandBar


Silas - Sa 23.09.06 09:28
Titel: CommandBar
Moin zusammen!

Das Tool, das ich entwickelt habe und hier vorstellen möchte, ist eine Leiste, die sich unten (direkt über der Taskleiste) und oben am Bildschirm platzieren lässt und in die sich vorher selbst definierte Befehle eintippen und danach ausführen lassen. Das ist ein gutes Mittel bei chronischer Tool-Wut :wink: , weil sich jede Anwendung und jedes Verzeichnis nach Bedarf mit einem Kürzel versehen lassen und einem so den langen und unübersichtlichen Weg über das Startmenü spart. Auch DOS-Befehle lassen sich als Befehl definieren.
Die Leiste passt sich automatisch an den Bildschirm an und verkleinert die Workarea, sodass die Leiste nicht von maximierten Fensternverdeckt werden kann (und diese selbst auch nicht verdeckt). Das Design lässt sich beliebig anpassen.
Das Programm verfügt über einen Installer, einen Uninstaller gibt's auch. Das Installationsscript (Inno Setup Compiler) ist bei den Sourcen dabei.

Hier noch ein Screenshot:
user defined image

Ich wünsche euch viel Spaß mit dem Programm und würde mich über Feedback freuen.


Silas - Mi 27.09.06 13:40

*aufsichaufmerksammachundhoffdassjemandantwortet*


ZeitGeist87 - Mi 27.09.06 13:53

hallo!

habs unter win98 getestet..
installer funktioniert nicht..
und beim ausführen unter 98 nach kompilierung kommt: "Fehler beim Holen der Daten für 'DockTop'" und "Fehler beim Holen der Daten für 'DockFont'";

desweiteren bekomme ich eine Zugriffsverletzung wenn ich ein Kommando eintipp und auf 'Execute' klick.

LG
Stefan


Silas - Mi 27.09.06 14:17

Hallo!

Zum ersten kann ich nix sagen, Weil ich nur XP hab... Was "sagt" der Installer den?

Das zweite ist einfach, da fehlen die Registry-Einträge, die der Installer anlegt, die sind als .REG im Installer-Quelltext-Ordner unter /Files gespeichert (reg.reg), zusätzlich legt der Installer einen REG_SZ-Wert unter HKEY_CURRENT_USER/Software/CommandBar/ mit dem Namen "Background" an, der einen Dateinamen einer existierenden Bitmap als Inhalt haben muss. Du kannst diesen Eintrag aber auch leer lassen, dann bekommst du beim ersten Start eine Fehlermeldung, kannst dann aber unter "Einstellungen" ein Bitmap festlegen. Zusätzlich wird das Programm noch als Autostart eingetragen (HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Run).

Beim dritten: Hast du vorher einen Befehl definiert?


hui1991 - Mi 27.09.06 14:44

Das Programm ist sehr Nützlich, aber beim Hinzufügen, wäre es Klüger, wenn die Edits gelöscht werden. Da sonst die alten Werte drin stehen. ICh werde das eine Zeit benutzt, da sich das Starten der Programme schneller geht.

MfG
hui1991


freak4fun - Mi 27.09.06 14:59

Du hättest sagen müssen, das es eine PreAlpha ist. Weder der Installer noch die Sourcen funktionieren bei mir. :twisted: Der Installer sagt, das es den Pfad nicht gäbe, obwohl er ihn selber vorschlägt, wenn man einen eigenen wählt ist nach der "erfolgreichen" installation da nichts drin ...

Bei den Sourcen gibts Hinweise und dann gibts bei starten ordentlich Fehlermeldungen ... Nein danke!

freak


Silas - Do 28.09.06 17:22

@freak4fun: Sorry, tut mir echt leid. Bei mir hat alles Funktioniert, ich such mal nach dem Fehler. Wegen den Sourcen: Das mit den Hinweisen schau ich mir noch mal an, das mit den Meldungen liegt an den Registry-Einträgen, hab ich im letzten Beitrag erklärt.

@hui1991: Bei den Edits ist bei mir noch irgendwo der Wurm drin... Ich schau, das ich's hinkrieg.

Wegen der Beschwerden über den Installer versuch ich's in nächster Zeit noch mit einer Variante ohne.


DarkLord05 - Do 28.09.06 17:34

Hi, habs mir gerade mal gezogen.


Hab da nen fehler gefunden ;)
Folgendes:

- Befehl
- Hinzufügen
- Nen Befehl hinzufügen
- Abbrechen

Nun ist der Befehl trotzdem in der Liste.

Werde editieren wenn ich noch was finde ;)


EDIT: Und da is schon wieder was *g*

#1 Wenn man nur nen Ordner öffnen will, muss man trotzdem eine Datei auswählen.

#2 Wenn man in die Leiste irgendwas eintippt, kommt ne Zugriffsverletzung:

Quelltext
1:
Zugriffsverletzung bei Adresse 00468888 in Modul 'cmdbar.exe'. Lesen von Adresse 0349AAB0.                    


Silas - Fr 29.09.06 16:36

Danke, ich werd mich drum kümmern.

Wegen der Zugriffsverletzung:
Ich stell mich da wahrscheinlich ziemlich blöd an, aber: bei was kann so was den "kommen"?


Andidreas - Fr 29.12.06 00:10

Auweia.

Delphi-Quelltext
1:
  r.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', false); // muß true sein, damit der Schlüssel angelegt wird                    

Was meinst Du was da passiert mit Deinem false? Nichts.


jaenicke - Fr 29.12.06 06:01

user profile iconAndidreas hat folgendes geschrieben:
Auweia.

Delphi-Quelltext
1:
  r.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', false); // muß true sein, damit der Schlüssel angelegt wird                    

Was meinst Du was da passiert mit Deinem false? Nichts.

Wenn der Schlüssel bei dir nicht existiert, dann solltest du mal nachsehen, was mit deinem System nicht in Ordnung ist... :lol:
Eine Neuinstallation von Windows oder eine Reparatur von Windows hilft... :rofl: :rofl: :rofl:

Und was heißt es passiert nix? Der Schlüssel wird geöffnet (damit du dadraus lesen kannst) und da dieser Schlüssel auf jedem Windows-System existiert muss er ja auch gar nicht erzeugt werden. Und nur dafür gehört da ein True hin.

Bei System-Schlüsseln in der Registry mache ich auch kein True da hin sondern zeige zunächst eine Warnung an, dass mit dem System etwas nicht stimmt. Und dabei frage ich dann, ob ich versuchen soll, die fehlenden Systemeinträge selbst zu erzeugen. Und dann kommt da als Parameter True hin, wenn der User das möchte...


Andidreas - Fr 29.12.06 11:43

Sorry falsches Beispiel.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
  r := tregistry.create;
  r.RootKey := HKEY_CURRENT_USER;
  r.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', false);
  r.WriteString('CommandBar', Edit1.Text + '\CmdBar.exe');
  r.CloseKey;
  r.openKey('Software\CommandBar', false);
  r.WriteString('Background', Edit1.Text + '\BG.bmp');
  r.Free;


Auszug aus dem Installationsprogramm.


GTA-Place - Fr 29.12.06 12:13

Stimmt, beim 2. OpenKey muss dann doch True hin.


jaenicke - Fr 29.12.06 16:12

Ja, das ist klar, da ist das false falsch, klar. Ich hatte mir den Source aber nicht angesehen, deshalb hab ich mich über das andere Beispiel natürlich gewundert... ;-)
Aber das ist auch mit true noch nicht gut. Richtig wäre es so:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
  r := tregistry.create;
  r.RootKey := HKEY_CURRENT_USER;
  if r.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', false) then
    r.WriteString('CommandBar', Edit1.Text + '\CmdBar.exe');
  r.CloseKey; // Das muss nicht ins if, da es einfach nix macht, wenn 
              // kein Schlüssel offen ist. Deshalb: sicher ist sicher...
  if r.openKey('Software\CommandBar', true) then
    r.WriteString('Background', Edit1.Text + '\BG.bmp');
  r.Free;


Andidreas - Fr 29.12.06 19:21

Richtig. Hat er aber nirgendswo so gemacht. Kein Wunder wenn so viele Meldungen auftauchen. Hab es mal etwas geändert. Hoffe das er sich das vom Server lädt, an sieht und wenn nötig noch weiter ausarbeitet.


Silas - Fr 16.02.07 09:56

So, jetzt hab ich eine neue Version fertig. Tut mir leid, dass es so lange gedauert hat, aber ich hab anderthalb Monate auf DSL gewartet. Jetzt hab ich das Setup mit einem Setup Compiler erstellt, das sollte also funktionieren. Das Programm selber ist auch nochmal komplett überarbeitet (Vielen Dank @ Andidreas!!) und sollte jetzt auch direkt kompiliert ohne Installer laufen. Die Sachen wie z.B. dass die Edits beim Befehlerstellen nicht gelöscht werden oder dass man für ein Verzeichnis eine Datei auswählen muss, sind behoben. Das mit den Zugriffsverletzungen ist mir ein Rätsel, bei mir treten die nicht auf, bei euch jetzt hoffentlich auch nicht mehr.