Hallo Mike,
auch wenn ich etwas spät dran bin, ich glaube, ich kann Dir ein wenig
Post by Mike NeuerWas müßte ich tun, wenn ich Deine und meine Lösung parallel im Menü
haben will, also ein "Öffne cmd" und ein "Öffne cmd mit dir"? Ich
[...]
Post by Mike NeuerLeider überschreibt mir das mein "Öffne cmd". Was muß ich verändern,
damit ich beide im Menü habe?
Du legst im "shell" Zweig _zwei_ Zweige (aka Schlüssel) an mit
unterschiedlichem Namen.
Windows fügt sie automatisch beide in das Kontextmenü ein. Beispiel:
[HKEY_CLASSES_ROOT\*\shell]
[HKEY_CLASSES_ROOT\*\shell\DOS_Box1]
@="DOS-Box Nr. 1 hier"
[HKEY_CLASSES_ROOT\*\shell\DOS_Box2]
@="DOS-Box Nr. 2 hier"
Jeder Zweig muss dann wiederum einen Schlüssel "command" haben (dieser
Name ist Pflicht),
in dessen Standard-Eintrag wie üblich der auszuführende Befehl steht.
Post by Mike NeuerJetzt frage ich mich was genau das Powertoys CmdHere.exe macht, wenn es
doch so einfach auch geht.
Meines Wissens macht das Programm auch nichts anderes, als Dir die
Arbeit abzunehmen,
das selbst in die Registry einzutragen.
Post by Mike NeuerWas ist der Unterschied zwischen
HKEY_CLASSES_ROOT\AllFilesystemObjects\shell und
HKEY_CLASSES_ROOT\*\shell\cmd?
Der erste Eintrag gilt sowohl für Verzeichnisse als auch Dateien, der
zweite nur für Dateien.
Es gibt noch HKEY_CLASSES_ROOT\Folder - der ist, wie leicht zu
erraten, nur für Verzeichnisse.
Eine korrekte Lösung für Deine initiale Frage ist IMHO diese:
---- schnipp ----
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell]
[HKEY_CLASSES_ROOT\*\shell\DOS_Box]
@="DOS-Box hier"
[HKEY_CLASSES_ROOT\*\shell\DOS_Box\command]
@="cmd.exe /k for %%a in (\"%L\") do cd /d %~dpa"
[HKEY_CLASSES_ROOT\Folder\shell\DOS_Box]
@="DOS-Box hier"
[HKEY_CLASSES_ROOT\Folder\shell\DOS_Box\command]
@="cmd.exe /k"
---- schnapp ----
Man muss Dateien und Verzeichnisse unterschiedlich behandeln, deswegen
kann man
sich nicht auf HKEY_CLASSES_ROOT\AllFilesystemObjects beschränken.
Du erkennst sicher die for-Schleife wieder, allerdings habe ich sie
etwas korrigiert, um z.B.
das Problem mit den Leerzeichen im Verzeichnisnamen zu lösen:
Anführungszeichen.
Außerdem sollte der cd-Befehl mit dem Parameter /d aufgerufen werden,
weil sonst der
Wechsel auf ein anderes Laufwerk nicht funktioniert.
Diese reg-Datei tut bei mir wunderbar. Dadurch, dass beide Einträge
den gleichen Namen
"DOS-Box hier" haben, erkennt der Benutzer nicht, dass es sich um zwei
verschiedene
Einträge im Kontextmenü handelt, eben abhängig davon, ob es sich um
eine Datei oder
ein Verzeichnis handelt - genau das was man will.
Ich suche derzeit noch nach einer Lösung, um in der geöffneten DOS-Box
nicht den Titel
"C:\Windows\System32\cmd.exe" zu sehen, sondern z.B. nur "DOS-Box".
Außerdem, noch wichtiger für mich, würde ich gern bei einer Datei
diese bereits als Befehl
am Prompt stehen haben - etwa bei bat-Files könnte man dann schnell
noch einen Parameter
hintippen und das ganze gleich ausführen. Auch hier sollte der Titel
des DOS-Fensters
idealerweise den Namen der Datei haben.
Hat dazu jemand eine Idee?
Viele Grüße,
Dirk