Dateipfad öffnet sich im Chrome

Jonas5

Admiral
Registriert
Dez. 2010
Beiträge
8.216
Hallo zusammen,

ich habe hier ein seltsames Problem. Über Lotus Notes habe ich per mail einen Hyperlink auf einen Netzwerkordner bekommen. Ist Chrome der Standard-Browser öffnet sich immer dre Chrome. Ist der IE der Standard-Browser öffnet sich wie gewünscht der Datei-Explorer.

Welche Verlinkung liegt da hinter?

Gruß
Jonas5
 
Ist halt die Frage welche Betriebssystem wie der Hyperlink aufgebaut ist. Ist das ein UNC?
 
Hallo Jonas,

das Ganze hat nichts mit Verlinkung zu tun, sondern mit der Dateitypenzuweisung im ersten Teil der Registry (HKEY_CLASSES_ROOT). In diesem Teil ist festgelegt welche Dateitypen mit welchem Programm geöffnet werden. Bei Weblinks sind das für gewöhnlich die Dateitypen .HTM bzw .HTML.

HKEY_CLASSES_ROOT ist selbst in zwei Teilen unterteilt. Im ersten werden alle bekannten Endungen wie z.B. HTML aufgelistet (HKEY_CLASSES_ROOT\.html). Rechts steht dann im Eintrag "Standard" mit welcher Anwendung die Endung korrespondiert. Je nach dem welcher Browser nun der Standard-Browser ist wird dieser Eintrag nun vom jeweiligen Browser vereinnahmt. Da steht aber nicht direkt der Pfadname der Anwendung drin, sondern lediglich ein Verweis/Pointer, also für gewöhnlich steht da drin daß die Endung .HTML ein "HTMLfile" ist. Dieser Pointer verweist nun auf den zweiten Teil von HKEY_CLASSES_ROOT bei dem dann alle Anwendungsverknüpfungen stehen, in unserem Fall ist das dann der Pfad "HKEY_CLASSES_ROOT\htmlfile".

So und jetzt geht es richtig los. Beit HTMLfile stehen jetzt auf der rechten Seite mehrere Einträge, wichtig hierbei:
(Standard) - HTML Document - Angezeigter Name des Datenformats im Explorer

Als Unterschlüssel zu jedem Dateiformat gibt es wiederum etliche Einträge. Die wichtigsten hierbei (für alle Datenformats-Einträge einheitlich):

HKEY_CLASSES_ROOT\htmlfile\DefaultIcon - Pfadnamen zu einem Icon das im Explorer für das Datenformat angezeigt wird.

und

HKEY_CLASSES_ROOT\htmlfile\Shell - das ist der Registry-Schlüssel für alle Kontextmenüeinträge eines Datenformats.

Shell hat wiederum diverse Unterschlüssel. Die wichtigsten sind:

Open (öffnen), OpenNew (neues Dokument öffnen), Print (ausdrucken), PrintTo (auf einem bestimmten Drucker ausgeben). Auf der rechten Seite des Schlüssels Shell steht unter "Standard" welcher dieser Einträge der Default-Eintrag ist. Dieser Eintrag wird ausgeführt wenn nicht die Auswahl über das Kontextmenü (rechte Maustaste), sondern die Datei doppelt geklickt wird. Im Normalfall steht da Open in den meisten Fällen.

Schließlich hat jeder dieser Schlüssel wieder zumindest einen Unterschlüssel, der da lautet:

Command das ist nun die echte Verknüpfung zwischen einer Datei mit der entsprechenden Endung und der ausführenden Anwendung. Hier steht nun rechts im Eintrag Standard der komplette Pfadname der auszuführenden Anwendung, ein Leerzeichen dahinter und schließlich %1. %1 ist eine Standardvariable des Systems, die den kompletten Pfadnamen der angeklickten Datei enthält, und der auszuführenden Anwendung übergeben wird.

Ist also z.B. der IE der Standardbrowser enthält der Schlüssel:

HKEY_CLASSES_ROOT\htmlfile\shell\open\command rechts unter Standard den Wert: "C:\Program Files\Internet Explorer\iexplore.exe" %1

Ich hoffe ich konnte Dir mit Hilfe dieser Schnellanleitung die Zusammenhänge erklären.
 
Aber ist denn ein Hyperlink auf einen Netzwerkpfad und keine URL auch als HMTL anzusehen? Wenn der IE Standard-Browser ist passiert das ja nicht...
 
Selbst ein Link an sich ist eine Datei. Eben mit der Endung .LNK, Dateiformat heißt LNKfile, die aber niemals angezeigt wird, weil das Dateiformat Link mit der Eigenschaft "Superhiden" belegt ist. Das wird mit dem Flag "NeverShowExt" festgelegt, der als Zeichenfolge (SZ) auf der rechten Seite des Schlüssels HKEY_CLASSES_ROOT\lnkfile steht.

Obiges betrifft eine normale Verknüpfung. Eine Internetverknüpfung funktioniert analog, jedoch ist hierbei die Endung .URL das Dateiformat heißt Internetshortcut. Mit welchem Programm, sprich Browser nun ein Internetverknüpfung gestartet wird, ist im Schlüssel:

HKEY_CLASSES_ROOT\InternetShortcut\shell\Open\Command

festgelegt. Dort steht dann analog, wenn IE der Standardbrowser ist, der Wert:

"C:\Windows\System32\rundll32.exe" "C:\Windows\System32\ieframe.dll",OpenURL %1

Ändert sich nun der Standardbrowser, werden allen genannten Einträge und viele andere, die ich hier jetzt gar nicht alle nennen kann, vom jeweiligen Browser umgeändert.

Hat man das Prinzip einmal verstanden kann man da nun selbst Hand anlegen, und selbst festlegen welche Datei mit welchem Programm geöffnet wird. So könnte man z.B. einfach die Einträge des IE exportieren leicht verändern, dann einen anderen Browser als Standard-Browser auswählen, und dann den IE als zusätzliche Option im Kontextmenü einfügen.

Wenn Du also jetzt Chrome als Standardbrowser erklärst, dann überschreibt er (unter anderem) den ganzen Schlüssel

HKEY_CLASSES_ROOT\InternetShortcut

Jetzt geht man her und kopier die alte Zeile von oben wieder hinein, aber nicht mehr unter Open, sondern wir ändern nun den Schlüsselnamen meinetwegen zu OpenWithIE. Den Wert Standard auf der rechten Seite editieren wir von "Wert nicht festgelegt" (leer) meinetwegen zu "Im Internet Explorer öffnen". Wenn man jetzt eine URL rechts anstatt links anklickt hat man einen neuen Kontext-Menü Eintrag. So läßt sich dann eine URL dann mit Doppelklick im Chrome öffnen, und über Rechtsklick -> Im Internet Explorer öffnen dann im Internet Explorer öffnen.
 
Zuletzt bearbeitet:
Zurück
Oben