3

On Windows 10 when I click on an ftp link in an email it asks "How do you want to open this?" and gives a list of choices: Firefox, Chrome, Internet Explorer, WinSCP and 'look for app in store'.

I have FileZilla installed but it's not offered as a choice. How do I register Filezilla as a client for Windows 10 to open ftp links?

Win10 ftp link handler query dialog

matt wilkie
  • 5,324

3 Answers3

1

See Microsoft article Registering an Application for Use with Default Programs.

Or, seeing that you have WinSCP installed, check what WinSCP does to register itself as ftp:// handler:

[HKEY_CLASSES_ROOT\WinSCP.Url]
@="WinSCP URL"
"URL Protocol"=""
"EditFlags"=dword:00000002
"BrowserFlags"=dword:00000008

[HKEY_CLASSES_ROOT\WinSCP.Url\DefaultIcon] @=""C:\Program Files (x86)\WinSCP\WinSCP.exe",0"

[HKEY_CLASSES_ROOT\WinSCP.Url\shell]

[HKEY_CLASSES_ROOT\WinSCP.Url\shell\open]

[HKEY_CLASSES_ROOT\WinSCP.Url\shell\open\command] @=""C:\Program Files (x86)\WinSCP\WinSCP.exe" /Unsafe "%1""

[HKEY_LOCAL_MACHINE\SOFTWARE\Martin Prikryl\WinSCPCapabilities] "ApplicationDescription"="WinSCP is a popular free SFTP and FTP client for Windows, a powerful file manager that will improve your productivity. It supports also Amazon S3, FTPS, SCP and WebDAV protocols. Power users can automate WinSCP using .NET assembly."

[HKEY_LOCAL_MACHINE\SOFTWARE\Martin Prikryl\WinSCPCapabilities\UrlAssociations] "ftp"="WinSCP.Url"

[HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications] "WinSCP"="Software\Martin Prikryl\WinSCPCapabilities"

And do a similar thing for FileZilla.

For the above to work, you still need to have ftp protocol registered in HKEY_CLASSES_ROOT\ftp. But you have that already.

Note that FileZilla does not support URLs pointing to a file. Only URLs pointing to a directory. WinSCP supports both.

0

You need to register the protocol. Here is a link explaining how to make things such as "asdf://" or "ftp://" or "ssh://" open applications: Link

Ecstasy
  • 392
0

So you need to create a Registry Key to under HKEY_CLASSES_ROOT as due to Win32 OLE, URL's are objects too:

[HKEY_CLASSES_ROOT\sftp]
@="URL:Secure File Transfer Protocol"
"URL Protocol"=""

Then it helps to attribute the URL to an application or action to "do" something. Such as:

[HKEY_CLASSES_ROOT\sftp\DefaultIcon]
@="C:\\Program Files\\FileZilla FTP Client\\filezilla.exe,0"
[HKEY_CLASSES_ROOT\sftp\shell\open\command]
@="\"C:\\Program Files\\FileZilla FTP Client\\filezilla.exe\" \"%1\""

Of course, it can also work in reverse to describe the powers an application can do so that it's "suggested" when trying to open a particular URL or file type:

[HKEY_LOCAL_MACHINE\Software\FileZilla\Capabilities\URLAssociations]
"sftp"="FileZillaURL"

But make sure the application is fully registered into the Windows Registry because as you can see, it's not just enough to add the URL association for an application, it actually must be registered and linked for the OS to be considered the application "embedded" (OLE).

[HKEY_CLASSES_ROOT\sftp]
@="URL:FTP Secure"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\sftp\DefaultIcon] @="C:\Program Files\FileZilla FTP Client\filezilla.exe,0"

[HKEY_CLASSES_ROOT\sftp\shell\open\command] @=""C:\Program Files\FileZilla FTP Client\filezilla.exe" "%1""

[HKEY_LOCAL_MACHINE\Software\FileZilla] @="FileZilla FTP Client"

[HKEY_LOCAL_MACHINE\Software\FileZilla] "ApplicationDescription"="FileZilla is open source software distributed free of charge under the terms of the GNU General Public License." "ApplicationIcon"="C:\Program Files\FileZilla FTP Client\filezilla.exe,0" "ApplicationName"="FileZilla FTP Client"

[HKEY_LOCAL_MACHINE\Software\FileZilla\Capabilities\URLAssociations] "sftp"="FileZillaURL"

[HKEY_LOCAL_MACHINE\Software\FileZilla\DefaultIcon] @="C:\Program Files\FileZilla FTP Client\filezilla.exe,0"

[HKEY_LOCAL_MACHINE\Software\RegisteredApplications] "FileZillaFTPClient"="SOFTWARE\FileZilla\Capabilities"