Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Kontextmenü-Eintrag für Verknüpfungen und passender Befehl

Frage Entwicklung Batch & Shell

Mitglied: kkboy94

kkboy94 (Level 1) - Jetzt verbinden

01.08.2010 um 13:39 Uhr, 7784 Aufrufe, 17 Kommentare

Hallo Administratoren-Freunde,

der Titel ist auch schon meine eigentliche Frage.
Konkreter: Ich möchte einen Kontextmenü-Eintrag erstellen, welcher aber nur bei Verknüpfungen zu sehen ist. Der Kontextmenü-Eintrag soll dann den der Verknüpfung übergeordneten Ordner öffnen. Aber bevor ich den Kontextmenü-Eintrag erstellen kann, muss ich ja wissen wo ich die Änderungen in der Registry vornehmen muss.

Den folgenden Artikel habe ich mir ergoogelt:
http://support.microsoft.com/kb/509254/#top

Aber ich bin auch noch am Rätseln welchen Befehl ich bei Standard dann hinschreibe. Meine ersten Überlegungen waren diese hier:
cd %1 & cd ..


MfG Karsten
Mitglied: paulepank
01.08.2010 um 15:02 Uhr
Hallo Karsten,

da du mit dem Kommando cd operierst, vermute ich du willst den übergeordneten Ordner in der Console öffnen.
Hier eine Möglichkeit:
01.
Windows Registry Editor Version 5.00 
02.
 
03.
[HKEY_CLASSES_ROOT\lnkfile\shell] 
04.
 
05.
[HKEY_CLASSES_ROOT\lnkfile\shell\ueber] 
06.
@="Übergeordneter Ordner" 
07.
 
08.
[HKEY_CLASSES_ROOT\lnkfile\shell\ueber\command] 
09.
@="cmd /k \"cd ..\"" 
10.
 
Die Zeilen in eine reg.Datei stecken und doppelklicken
cu paulepank
Bitte warten ..
Mitglied: kkboy94
01.08.2010 um 15:36 Uhr
Erst einmal Danke.

Und jetzt die Fragen/An-/Bemerkungen:
Was bedeutet das "@"?
Und:
Ich möchte eigentlich den übergeordeten Ordner im Explorer öffnen.
Bitte warten ..
Mitglied: Friemler
01.08.2010 um 15:40 Uhr
Hallo Karsten,

das Vorgehen, was paulepank schildert, ist das Standardvorgehen bei normalen Dateierweiterungen, z.B. .txt oder auch * für alle Dateien. Der Code ist der Inhalt einer .reg-Datei, den Du durch Doppelklick in die Registry importieren musst.

Ich hatte zuerst die selbe Idee und habe das eben unter Windows XP Professional SP3 getestet. Es hat nicht funktioniert. Aber probiere es ruhig mal selbst aus. Falls es klappt, würde ich Zeile 9 folgendermaßen ändern, dann geht ein Explorerfenster mit dem übergeordneten Verzeichnis auf:

01.
@="explorer \"%~dp1\..\""
Als Alternative gibt es die Windows 95 Powertoys (Download: http://download.microsoft.com/download/5/2/e/52e8fd68-e528-4995-abe2-56 ... ). ACHTUNG: Die kann man nur bis Windows XP verwenden!! In Windows 7 ist aber im Kontextmenü von Verknüpfungen auf Verzeichnisse ein Punkt "Ordnerpfad öffnen" und im Kontextmenü von Verknüpfungen auf Dateien ein Punkt "Dateipfad öffnen" enthalten. Bei Vista weiß ich es nicht. Für Windows 7 brauchst Du also keinen zusätzlichen Kontextmenüeintrag.

In Windows 95 Powertoys ist ein Powertoy namens Shortcut Target Menu enthalten. Die Setupdatei W95powertoy.exe kannst Du mit dem Programm Universal Extractor entpacken (Link: http://www.legroom.net/software/uniextract ). Du erhälst dann u.a. die Dateien target.dll und target.inf. Zum Installieren des ganzen machst Du einen Rechtsklick auf target.inf und wählst Installieren aus dem Kontextmenü. Du erhälst dann im Kontextmenü von Verknüpfungen einen Eintrag Target, der ein Submenü mit mehreren Möglichkeiten öffnet, was Du mit der Verknüpfung machen kannst, u.a. den Ordner öffnen, auf den die Verknüpfung zeigt.

Falls Dich die englischen Einträge im Kontextmenü stören, musst Du die target.dll vor dem Installieren mit einem Hexeditor patchen.

Gruß
Friemler
Bitte warten ..
Mitglied: kkboy94
01.08.2010 um 15:53 Uhr
Also... als erstes ein dank auch für deinen Vorschlag
paulepanks Methode hat nicht funktioniert (Es öffnete sich lediglich das CMD-Prompt).
Mit deiner Alternative/Ergänzung, welche ich auch einfach mal probiert habe, öffnete sich immer die Festplatte "C:".
Aber noch eine Frage zu deinem Vorschlag:
Eigentlich verstehe ich deinen ganzen Vorschlag nicht, bzw. ich weiß nicht warum das überhaupt so funktioniert. Könntest du mich da noch aufklären?


MfG Karsten

:EDIT: Ich wollte nachher alles in eine Reg- oder Bat-Datei stecken, damit ich das auch auf anderen Rechnern benutzen kann, und die Leute vielleicht kein zusätzliches Programm installieren wollen.
Bitte warten ..
Mitglied: Friemler
01.08.2010 um 16:18 Uhr
Hallo Karsten,

der Vorschlag von paulepank funktioniert auch mit meiner Änderung

01.
@="explorer \"%~dp1\..\""
nicht. Hab's nochmal getestet. Durch %~dp1 wird Laufwerk und Pfad der Verknüpfung ermittelt und der Explorer mit dem Parameter "%~dp1\.." gestartet. Du erhälst dann immer das Verzeichnis, in dem sich die Verknüpfung befindet.

Zitat von kkboy94:
Eigentlich verstehe ich deinen ganzen Vorschlag nicht, bzw. ich weiß nicht warum das überhaupt so funktioniert.
Könntest du mich da noch aufklären?

Verstehst Du den Vorschlag mit den Windows 95 Powertoys nicht oder die Änderung an paulepank's Code? Da ich immer noch nicht weiß, welches OS Du verwendest (Windows 95 Powertoys sind nur bis Windows XP verwendbar), weiß ich auch nicht, ob das für dich überhaupt praktikabel ist.

:EDIT: Ich wollte nachher alles in eine Reg- oder Bat-Datei stecken, damit ich das auch auf anderen Rechnern benutzen kann, und
die Leute vielleicht kein zusätzliches Programm installieren wollen.

Falls Du die Windows 95 Powertoys verwenden möchtest, gibt es da eine Lösung, einfach nochmal melden.

Gruß
Friemler
Bitte warten ..
Mitglied: kkboy94
01.08.2010 um 16:27 Uhr
Okay Sorry hab ich wohl verpennt. Ich benutze
"WINDOWS XP SP3"
Ich habe mich leicht unverständlich ausgedrückt, das sehe ich ein ;). Aber ich meinte, ich wollte die Powertoys NICHT benutzen.

Den Powertoy Vorschlag habe ich verstanden, aber ich hatte deine Änderung nicht verstanden. Und aus reinem Interesse frage ich mal, ob ich den Teil mit dem "%~dp1" auch irgendwo nachlesen kann?


MfG Karsten
Bitte warten ..
Mitglied: bastla
01.08.2010 um 16:39 Uhr
@Friemler
Wie sieht's aus, wenn Du beim "Escapen" von Sonderzeichen so richtig großzügig bist - also etwa:
@="explorer \/e\,\"%~dp1\\..\""
- wobei: Braucht es überhaupt nach "%~dp1" auch noch ein ".."?

Grüße
bastla
Bitte warten ..
Mitglied: kkboy94
01.08.2010 um 16:56 Uhr
Was heißt "Escapen"?
Bitte warten ..
Mitglied: Friemler
01.08.2010 um 19:39 Uhr
Hallo Karsten,

zunächst mal Entschuldigung. Das mit dem "%~dp1\.." klappt garnicht. Heute ist nicht mein Tag . Wenn es so funktioniert hätte, wie ich dachte, wäre das Ergebnis trotzdem nicht das gewesen, was Du willst. Es hätte sich der Ordner geöffnet, in dem der Ordner liegt, wo die Verknüpfung gespeichert ist. "%~dp1" klappt auch nicht, da der Explorer die Datei "%~dp1" nicht finden kann. Du willst aber doch den Ordner öffnen, in dem das Ziel der Verknüpfung liegt, oder doch nicht?

Wenn es Dich überhaupt noch interessiert, wie ich darauf komme, mach' folgendes:

Start->Ausführen->cmd eingeben und [ENTER]->for /? eingeben und [ENTER]. Dann erscheint die erste Seite der Hilfe zum FOR-Befehl. Wenn Du 5 mal ENTER drückst, kommt ein Abschnitt "Zusätzlich wurde die Ersetzung von Verweisen auf FOR-Variablen erweitert. Sie können jetzt folgende Syntax verwenden:". Diese Hinweise gelten auch für die Parameter von Batchfiles %1, %2, ... %9. Die haben aber nichts mit %1, %2, usw. zu tun, die man in Kontextmenü-Einträgen als Parameter für das aufzurufende Programm verwenden kann.

Zitat von kkboy94:
... und die Leute vielleicht kein zusätzliches Programm installieren wollen.

Das Problem ist, das der Ordner, in dem das Objekt liegt, auf das die Verknüpfung zeigt, in der Verknüpfung abgespeichert ist. D.h. er muss erstmal ausgelesen werden. Das kann nur mit einem Zusatzprogramm bewerkstelligt werden.

Gruß
Friemler
Bitte warten ..
Mitglied: bastla
01.08.2010 um 19:58 Uhr
@Friemler
Wenn's auch für den hier angestrebten Zweck etwas unhandlich ist - das Auslesen des Verknüpfungszieles lässt sich auch mit Bordmittlen realisieren - Beispiel:
01.
@echo off & setlocal 
02.
set "Shortcut=%allusersprofile%\Desktop\Adobe Reader 9.lnk" 
03.
 
04.
set R=%temp%\ReadTargetFromShortcut.vbs 
05.
>%R% echo WScript.Echo WScript.CreateObject("WScript.Shell").CreateShortcut(WScript.Arguments(0)).TargetPath 
06.
 
07.
for /f "delims=" %%i in ('cscript //nologo %R% "%Shortcut%"') do set "Target=%%i" 
08.
echo %Target%
Grüße
bastla
Bitte warten ..
Mitglied: Friemler
01.08.2010 um 20:24 Uhr
Hallo bastla,

wieder was gelernt. Danke.

Gruß
Friemler
Bitte warten ..
Mitglied: rubberman
01.08.2010 um 21:58 Uhr
Hallo zusammen,

wenn schon VBS eine Lösung darstellt, warum dann nicht gleich VBS nutzen?!

Zusammenfassend etwa so:
C:\link.vbs
01.
Set oSh=WScript.CreateObject("WScript.Shell") 
02.
LNKfullname=oSh.CreateShortcut(WScript.Arguments(0)).TargetPath 
03.
LNKpath=WScript.CreateObject("Scripting.FileSystemObject").GetParentFolderName(LNKfullname) 
04.
oSh.Run "explorer.exe """ & LNKpath & """"
link.reg
01.
Windows Registry Editor Version 5.00 
02.
 
03.
[HKEY_CLASSES_ROOT\lnkfile\shell] 
04.
 
05.
[HKEY_CLASSES_ROOT\lnkfile\shell\ueber] 
06.
@="Übergeordneter Ordner" 
07.
 
08.
[HKEY_CLASSES_ROOT\lnkfile\shell\ueber\command] 
09.
@="c:\\windows\\system32\\wscript.exe c:\\link.vbs \"%1\"" 
10.
 
Nachdem link.vbs unter C: gespeichert worden ist und link.reg ausgeführt ist, die Exploreransicht einmal aktualisieren und schon kann's losgehen.

Grüße
rubberman
Bitte warten ..
Mitglied: bastla
01.08.2010 um 22:15 Uhr
Hallo rubberman!

Hybsch

Den Speicherort würde ich allerdings anders wählen, und wenn's nicht nur ein "Arbeitsplatz-", sondern ein "Explorer-"Fenster sein soll, dann:
oSh.Run "explorer /e,""" & LNKpath & """"
Grüße
bastla
Bitte warten ..
Mitglied: rubberman
01.08.2010 um 22:40 Uhr
Hallo bastla,

natürlich sind einige Anpassungen möglich, von Speicherort, über Optionen bis Windowstate. War erst mal die simpelste Variante.

Grüße
rubberman
Bitte warten ..
Mitglied: kkboy94
03.08.2010 um 15:21 Uhr
Danke erstmal für alle eingegangenen Vorschläge/Lösungen. Ich entschuldige mich auch mal direkt dafür, dass ich in letzter Zeit zwar ab und zu online war, aber nich geantwortet habe. Ich war halt an einem anderen PC, wo ich nicht unbedingt in der Registry rumprobieren wollte...

Nun zum Thema:

Rubberman's Lösung reichte vollkommen aus. Funktioniernt super.. Danke dafür.
@ Bastla: Deine änderung habe ich auch mal ausprobiert, aber ich bezeichne diese Ansichten halt immer als explorer-Fenster, da sie von der explorer.exe gesteuert sind, doer nicht?

Und nochmal zu rubberman: Was meinst du für Optionen, bzw mit "Speicherort, über Optionen bis Windowstaste"?

Und noch weiter Fragen:
1. Kann man alles mit nur EINER Datei bewerkstelligen? Und wenn NEIN dann die zweite Frage:
Ist es möglich den Pfad/Command varaibel zu gestalten, so dass man die "link.vbs" in einen beliebigen Ordner tun kann?

:EDIT: Mit einer Datei meine ich nur die Reg-Datei :/Edit:


MfG Karsten
Bitte warten ..
Mitglied: rubberman
03.08.2010 um 19:15 Uhr
Hallo Karsten.

Mit Speicherort ist der Pfad zur VBS Datei gemeint.
Eine der Optionen des Explorers hat bastla schon vorgestellt.
Mit Windowstate meinte ich den Windowstyle, den du bei der Run Methode festlegen kannst (maximiert öffnen etc.)

Alles in eine Datei packen? Joa, wir sind ja hier bei Batch & Shell.

register.bat
01.
@echo off &setlocal 
02.
:: hier kannst du anpassen 
03.
set "vbsFullName=%SystemRoot%\link.vbs" 
04.
 
05.
06.
echo Set oSh=WScript.CreateObject^("WScript.Shell"^) 
07.
echo LNKfullname=oSh.CreateShortcut^(WScript.Arguments^(0^)^).TargetPath 
08.
echo LNKpath=WScript.CreateObject^("Scripting.FileSystemObject"^).GetParentFolderName^(LNKfullname^) 
09.
echo oSh.Run "explorer.exe """ ^& LNKpath ^& """" 
10.
)>"%vbsFullName%" 
11.
 
12.
chcp 1252>nul 
13.
reg add "HKCR\lnkfile\shell\ueber" /ve /d "Übergeordneter Ordner" /f 
14.
reg add "HKCR\lnkfile\shell\ueber\command" /t REG_EXPAND_SZ /ve /d "%%SystemRoot%%\system32\wscript.exe \"%vbsFullName%\" \"%%1\"" /f
Naja, die VBS Datei lässt sich letztlich nicht wegkürzen.

Grüße
rubberman
Bitte warten ..
Mitglied: kkboy94
03.08.2010 um 20:37 Uhr
Danke, funktioniert Super.

Nächste Frage: Wie sähe denn eine batch aus, welche die dort angelegten Schlüssel wieder löscht?

MfG Karsten

:EDIT: Hat sich erledigt. Mit "reg delete" mach ich das ^^
Bitte warten ..
Ähnliche Inhalte
Windows XP
XP Pro: Windows Explorer Kontextmenü Eintrag Neu verbergen oder für Benutzer sperren ?
gelöst Frage von AshkeeWindows XP4 Kommentare

Hallo User und Supporter, ich finde einfach keinen Eintrag in gpedit, oder richtigen Schlüssel für die Registry um den ...

Ubuntu
Crontab Eintrag alle 5 Minuten einen Befehl ablaufen lassen
gelöst Frage von windelterroristUbuntu7 Kommentare

Hallo, Ich habe den Auftrag bekommen alle 5 Minuten den Befehl env LANG=C /usr/bin/mrtg /root/mrtg.cfg auszuführen. Dazu werde ich ...

Windows 10
Kontextmenü vom Startbutton bearbeiten
gelöst Frage von Oggy01Windows 106 Kommentare

Hallo, nach dem Creators Update ist aus dem Kontextmenü die alte Systemsteuerung verschwunden und statt "Systemsteuerung" findet man jetzt ...

Windows 10
Kontextmenü Verzögerung bei .EXE Dateien
Frage von Monto1Windows 106 Kommentare

Bei einem frisch installiertem Rechner habe ich eine Verzögerung des Kontext Menüs festgestellt, wenn man mit der rechten Maustaste ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 1 TagWindows 102 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 1 TagSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 1 TagInternet3 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 1 TagDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Windows Server
GPO nur für bestimmte Computer
Frage von Leo-leWindows Server13 Kommentare

Hallo Forum, gern würde ich ein Robocopy script per Bat an eine GPO hängen. Wichtig wäre aber dort der ...

Windows Server
KMS Facts for Client configuration
Frage von winlinWindows Server13 Kommentare

Hey Leute, wir haben in unserem Netz nun einen neuen KMS Server. Haben Bestands-VMs die noch nicht aktiviert sind. ...

Router & Routing
OpenWRT bzw. L.E.D.E auf Buffalo WZR-HP-AG300H - update
gelöst Frage von EpigeneseRouter & Routing11 Kommentare

Guten Tag, ich habe auf einem Buffalo WZR-HP-AG300H die alternative Firmware vom L.E.D.E Projekt geflasht. Ich bin es von ...

Windows Tools
Software-Tool zum Entfernen von bösartigem Windows
Frage von emeriksWindows Tools11 Kommentare

Hi, siehe Betreff hat das jemals irgendjemand schonmal sinnvoll eingesetzt? (MRT) E.