ftp-Links umleiten

halwe

Lt. Commander
Registriert
Jan. 2007
Beiträge
1.562
Hallo zusammen,

ich würde auf meinem PC gern ftp-Adressen mit einem eigenen Programm behandeln.
Hintergrund ist, dass ich versuche, seitengenaue Hyperlinks auf pdf-Dateien zu erzeugen. Das geht (z. B. in Office) nicht über einen Dateilink bzw. file:-Hyperlink. Das ftp-Protokoll lässt solche Parameter aber zu.
Ehe ich nun beginne, aus dem gesamten PC (pdf-Dateien können ja überall lokal liegen) einen ftp-Server zu machen, fände ich es praktischer, die ftp-Aufrufe mit einem eigenen kleinen Programm (AHK) zu verarbeiten. Dieses würde erkennen, ob es bei der angeforderten ftp-Adresse um eine lokale pdf-Datei geht (Reader aufrufen!) oder ob die Adresse einfach an den Browser (Firefox) weitergeleitet wird.

Leider kann ich bei einem Protokoll unter Windows 7 (wahrscheinlich auch unter Windows 10) nicht einfach den Handler frei in der Systemsteuerung bestimmen.
In der Registry kam ich bisher auch nicht weiter, ich fand verschiedene Einträge rund um das ftp-Protokoll, z. b.

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ftp]
"Source Filter"="{E436EBB6-524F-11CE-9F53-0020AF0BA770}"
"ShellFolder"="{63da6ec0-2e98-11cf-8d82-444553540000}"
@="URL:File Transfer Protocol"
"AppUserModelID"="Microsoft.InternetExplorer.Default"
"EditFlags"=dword:00200002
"URL Protocol"=""
"FriendlyTypeName"="@C:\\Windows\\System32\\ieframe.dll,-905"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ftp\DefaultIcon]
@="C:\\Windows\\System32\\url.dll,0"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ftp\shell]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ftp\shell\open]
"CommandId"="IE.Protocol"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ftp\shell\open\command]
@="\"C:\\Program Files\\Internet Explorer\\iexplore.exe\" %1"
"DelegateExecute"="{17FE9752-0B5A-4665-84CD-569794602F5C}"

aber auch
[HKEY_CLASSES_ROOT\PROTOCOLS\Handler\ftp]
@="ftp: Asychronous Pluggable Protocol Handler"
"CLSID"="{79eac9e3-baf9-11ce-8c82-00aa004ba90b}"

und entsprechend
[HKEY_CLASSES_ROOT\CLSID\{79eac9e3-baf9-11ce-8c82-00aa004ba90b}]
@="ftp: Asychronous Pluggable Protocol Handler"
[HKEY_CLASSES_ROOT\CLSID\{79eac9e3-baf9-11ce-8c82-00aa004ba90b}\InprocServer32]
@="C:\\Windows\\system32\\urlmon.dll"
"ThreadingModel"="Apartment"

Bei ersterem kann ich zwar mein Programm (statt iexplore.exe) eintragen, das ändert aber nichts am Öffnen mit Firefox.
Beim zweiten könnte ich das ftp-Protokoll evtl. umleiten, aber wohin?
Die Schlüssel des dritten Auszugs lassen sich nicht bearbeiten, keine Berechtigung. Ist wahrscheinlich auch gut so, denn das ftp-Protokoll sollte aus Sichereitsgründen wohl wirklich nicht leicht zu ändenr sein.

Vielleicht kennt sich aber von euch jemand soweit mit der Thematik aus, dass er mir helfen kann. Danke im voraus fürs Mitdenken.

Halwe
 
Unter Windows 10 einfach in den Einstellungen. Standard Apps nach Protokoll auswählen.

ftp.jpg
 
Mal ein praktisches Beispiel wäre sinnvoll weil sonst keiner weiss was du genau machen willst!
 
BlubbsDE schrieb:
Unter Windows 10 einfach in den Einstellungen. Standard Apps nach Protokoll auswählen.
Und wenn das beim Firefox nicht hilft würd ich in dessen Einstellungen anfangen zu graben da er sich wohl über die Systemstandards hinwegsetzt.
 
halwe schrieb:
ich versuche, seitengenaue Hyperlinks auf pdf-Dateien zu erzeugen. Das geht (z. B. in Office) nicht über einen Dateilink bzw. file:-Hyperlink. Das ftp-Protokoll lässt solche Parameter aber zu.
Nein, lässt es nicht. Du verwechselst das wahrscheinlich mit einem Windowshandler (file oder ähnliches). Vermutlich wärst Du bei transparentem SMB besser aufgehoben. Siehe #3.
 
Vielen Dank für die schnellen Antworten.
Aber es ist wohl nicht so einfach, sonst würde ich euch nicht belästigen.

@BlubbsDE : Ja, man kann in Windows die App für das ftp Protokoll auswählen, auch in meinem Windows 7. Aber da gehen nur "offizielle" Browserapps, man kann also nicht, wie bei den Dateiendungen, irgendeine exe-Datei aus dem Dateisystem auswählen.

@leipziger1979: Es geht um ftp-Links und deren Behandlung. Die Adresse, die ein Hyperlink in Office akzeptiert, lautet z. B.:
ftp://<benutzer>:<passwort>@192.168.178.36/Public/d/test.pdf#page=2
Das funktioniert so, da mein NAS ftp unterstützt. Dort sind aber leider nicht die gewünschten pdf-Dateien.
Den Syntax für meine exe-Datei ist egal, das kann ich frei programmieren, nur Office muss das als Linkadresse akzeptieren.

@mit about:config und about:preferences bin ich nicht weitergekommen, und wenn hier die Online-Profis sitzen dürfte ich genau richtig sein, wenn es da eine verborgene Einstellung gibt, das ftp-Protokoll nach lokal oder nicht lokal auszudifferenzieren.

@Uridium: Was das angeht, ja, das scheinen nicht viele zu wissen. Probier mal #Page=... am Ende einer ftp-Adresse in einem beliebigen Browser. SMB muss ich mal probieren, ob Acrobat da noch eine Seitennummer reinintepretieren lässt (das wäre dann undokumentiert) und ob das in Office als Hyperlinkadresse akzeptiert wird.

Ich könnte ja z. B. alle ftp-Aufrufe an den IE leiten und dort einstellen, dass der die pdfs gleich an den Reader weiterleiten soll. Aber es geht mir eben darum, über das ftp-Protokoll auch lokale Dateien zu öffnen und dafür müsste ich dann erst meinen PC (und nicht nur den NAS) in einen ftp-Server verwandeln, was ich aus Sicherheitsgründen nicht will.
 
Der Vollständigkeit halber: Hab's inzwischen hinbekommen.
Allerdings doch noch etwas anders: Ich habe einen neuen Protokolltyp unter Windows angelegt, "pdfs:" wie "pdf-seitengenau" (für sowas gibt's Anleitungen im Netz). Dieser wird durch mein eigenes Programm gehandhabt, dieses hat also nun den Protokollstring (z. B. "pdfs:c:\temp\test.pdf#2") als Parameter und kann dann die pdf-Dateien seitengenau (oder stichwortgenau) öffnen. Diese Links funktionieren sowohl aus dem Explorer als auch aus Office heraus.
Ich krieg zwar noch die Meldung "Diese Speicherort ist möglicherweise nicht sicher", aber wenn mir nichts besseres einfällt werde ich die wohl mit meiner "Fensterpflege" automatisch wegklicken.
 
halwe schrieb:
das scheinen nicht viele zu wissen. Probier mal #Page=... am Ende einer ftp-Adresse in einem beliebigen Browser.
FTP ist ein File Transfer Protokoll. Es hat nichts mit Inhalten oder Präsentation der Daten zu tun. Es liegt an der Implementierung, Weiterverarbeitung und Verkettung mit anderen Komponenten deines individuellen Programms (Explorer, Firefox..). Das mag in deinem Fall praktisch sein, hat aber nichts mit dem FTP Protokoll zu tun. Ansonsten versuche das mal mit einem nativen Client wie FileZilla.
 
Zuletzt bearbeitet:
Auch wenn ftp für mich inzwischen keine Rolle mehr spielt: Ja richtig, das #PAGE= Parameter ist nicht an ftp gebunden sondern wird einfach vom reader so akzeptiert, auch bei http:. Deshalb funktioniert es auch überall.
Für meinen Fall war wichtig, dass diese Protokolle Parameter via # zulassen, die auch in Office-Hyperlinks akzeptiert werden.
 
Zurück
Oben