2009-04-28 15 views
18

Ich möchte Telnet: // blah zu öffnen Putty und nicht die nativen Windows Telnet-Client.Wie kann ich einen benutzerdefinierten URL-Handler unter Windows hinzufügen? Wie iTunes itms: //

Ich weiß nicht einmal, wie dieses "Feature" unter Windows aufgerufen wird, so dass ich kein Glück habe, irgendwelche Informationen darüber zu finden.

Vielen Dank im Voraus, Jan

+0

Siehe [hier] (http://blogs.msdn.com/b/noahc/archive/2006/10/19/register-a-custom-url-protocol-handler.aspx) für ein Beispiel. –

Antwort

16

Wenn es einfach ist, können Sie es über die Kommandozeile tun:

ftype telnet # view current binding 
ftype telnet=\path\to\putty.exe %1 

Andernfalls müssen Sie die Registrierung verwenden, wie zuvor geschrieben.

+0

Danke dafür Richard, ftype sieht genau so aus. Allerdings, wenn ich schaffen eine Bindung wie: ftype ssh = c: \ Kitt% 1 Wenn ich versuche, und run 'ssh:' Ich erhalte 'Zugriff verweigert' ... –

+0

fand ich in Vista, dass ich "Datei nicht gefunden" abhängig von den Benutzerverwaltungsrechten und der aktivierten Benutzerkontensteuerung erhalten. http: und mailto: als Protokolle hat dieses Problem nicht –

+3

Leider wird ftype auf der Befehlszeile allein geben "Zugriff verweigert". Sie müssen außerdem den leeren URL-Protokollschlüssel hinzufügen, der im Registrierungsbeispiel aufgeführt ist. Der verknüpfte MSDN-Artikel deckt dies ab. – studgeek

2

Um den Telnet zu ändern: Protokollhandler (oder jeden anderen bestehenden Handler) auf XP (möglicherweise arbeitet für Vista - ich nicht ausgesehen haben), in der Systemsteuerung gehen> Ordneroptionen> Dateitypen (Registerkarte). Scrollen Sie nach unten (nicht viel, es ist in der Nähe der Spitze), um (KEINE) URL zu finden: Telnet-Protokoll, und klicken Sie auf die Schaltfläche "Erweitert". Ab hier ist es genauso, als würde man eine Dateitypzuordnung ändern. Beachten Sie, dass die Zielanwendung die Übergabe der angegebenen URL als Parameter unterstützen muss.

Leider scheint die "Neu" -Schaltfläche die Erstellung neuer "URL" -Typen nicht zu erlauben, da es die Eingabe einer Erweiterung erfordert. Um einen neuen Eintrag zu erstellen, musste ich zuvor einen vorhandenen Eintrag aus der Registrierung kopieren (also: suchen, exportieren, im Texteditor bearbeiten und erneut importieren).

12

Es ist ein Registrierungsschlüssel, der die benutzerdefinierten URI-Handler bereitstellt.

Here's an article on it on MSDN, ein Teil davon zu zitieren:

HKEY_CLASSES_ROOT 
    alert 
      (Default) = "URL:Alert Protocol" 
      URL Protocol = "" 
      DefaultIcon 
       (Default) = "alert.exe" 
      shell 
       open 
        command 
         (Default) = "C:\Program Files\Alert\alert.exe" "%1" 

, die Ihnen erlauben würde

Alarm zu tun: Eine Nachricht

Und Ihre Anwendung würde die „einige offensichtlich erhalten Botschaft "als Argument.

+4

Das funktioniert großartig, aber das Protokoll ist auch bestanden. In Ihrem Beispiel wird die App "alert: some message" gesendet.Irgendwelche Tipps/Gedanken, wie man die Warnung auszieht: Aus, bevor die App sie empfängt? Ich habe versucht String-Substitution wie% 1: alert: =%, aber es scheint nicht zu funktionieren. – studgeek

+0

[dieser stackoverflow Artikel] (http://stackoverflow.com/questions/23334946/cmd-batch-registry-string-replace-not-working-as-expected/23339563#23339563) hat die Antwort. – Air2

0

können Sie folgende Skript verwenden: https://gist.github.com/sbiffi/11256316

Es telnet zuordnet: // und ssh: // URLs an ein Skript, das die Parameter in der URL analysiert und startet Kitt.

Keine Notwendigkeit, Putty zu ändern Es unterstützt auch Weitergabe von Login (und Passwort für ssh).