How do I create a WPF application that can handle the URL:callto and URL:tel protocols in Windows 10?

做~自己de王妃 提交于 2020-06-26 07:46:14

问题


My task is to create a WPF application that when users click callto: and tel: links in the browser (Chome, IE) the default application that opens them is the Windows 10 WPF application that I have created and to handle them.

I have tried changing the registry by writing a script and by manually entering the path to my published .exe that Visual Studio has output but neither of these has worked, whenever I click a callto: or tel: link the default program that is opened is still a voip application such as Skype.

I have changed the [HKEY_CLASSES_ROOT\tel\shell\open\command] and Computer\HKEY_CLASSES_ROOT\callto\shell\open\command to "C:\App\bin\Release\app.publish\App.exe" -c "call\%1" (which is the .exe of my program)

I expect to be prompted by the browser to open the application.


回答1:


Have you read this page, which explains how to register as a consumer of shortcuts.

To register an application to handle a particular URI scheme, add a new key, along with the appropriate subkeys and values, to HKEY_CLASSES_ROOT. The root key must match the URI scheme that is being added. For instance, to add an "alert:" scheme, add an alert key to HKEY_CLASSES_ROOT, as follows:

HKEY_CLASSES_ROOT
    alert
        URL Protocol = ""

Under this new key, the URL Protocol string value indicates that this key declares a custom pluggable protocol handler. Without this key, the handler application will not launch. The value should be an empty string.

Keys should also be added for DefaultIcon and shell. The Default string value of the DefaultIcon key must be the file name to use as an icon for this new URI scheme. The string takes the form "path, iconindex" with a maximum length of MAX_PATH. The name of the first key under the shell key should be an action verb, such as open. Under this key, a command key or a DDEEXEC key indicate how the handler should be invoked. The values under the command and DDEEXEC keys describe how to launch the application handling the new protocol.

Finally, the Default string value should contain the display name of the new URI scheme. The following example shows how to register an application, alert.exe in this case, to handle the alert scheme.

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

When a user clicks a link containing your custom URI scheme, Windows Internet Explorer launches the pluggable protocol handler registered for that URI scheme. If the specified open command specified in the registry contains a %1 parameter, Internet Explorer passes the URI to the registered pluggable protocol handler application.



来源:https://stackoverflow.com/questions/58113126/how-do-i-create-a-wpf-application-that-can-handle-the-urlcallto-and-urltel-pro

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!