我试图从网址启动我的C#应用程序(示例" myapp:// somestring")并且我已经能够做到这一点,但我仍然可以&#39 ;了解如何阅读" somestring"网址应传递给应用的值。
我尝试了以下代码,但没有:
static void Main (string[] args){
foreach (string arg in args) {
Console.Writeline(arg);
}
}
要知道,应用程序正在使用xamarin for mac。
提前感谢您提供任何帮助
答案 0 :(得分:1)
有时您希望使用mailto:
或skype:
等自定义网址来处理某些自定义链接。为此,您可以在注册表中register an application to a URI Scheme创建一个运行以处理对该URL方案的请求的应用程序。
I've created an example that demonstrate the feature.创建此示例以处理myapp:
url方案并显示一个消息框,其中包含通过url传递给应用程序的值。
该示例包含2个项目:
我想您要创建myapp
url方案并在c:\myapp.exe
中设置一个应用程序,您希望在应用程序中处理url方案。然后,您应该在registry / l
HKEY_CLASSES_ROOT
myapp
(Default) = "URL:myapp"
URL Protocol = ""
DefaultIcon
(Default) = "c:\myapp.exe",0
shell
open
command
(Default) = "c:\myapp.exe" "%1"
然后,您可以使用Environment.GetCommandLineArgs()
通过URL获取传递给应用程序的值并解析参数。
例如,有一个url myapp:Hello world!
,你的应用程序的命令行参数将是myapp:Hello world!
,你可以解析它并从参数中提取你需要的信息。
就像一个例子,你可以有这样的网址:myapp:show?form=form1¶m1=something
。然后你可以解析命令并做你需要的。
<强> 1。 Windows窗体应用程序在此项目中的作用是什么?
当用户单击注册方案的URL时,应用程序将打开,并且URL将作为命令行参数传递给应用程序。然后你可以解析参数并做你需要的。
<强> 2。安装项目的作用是什么?
它安装处理url方案的应用程序。它还在Windows注册表中使用合适的值注册url方案 您也可以使用C#代码创建这些注册表项和值,而不是使用安装程序项目,但使用安装程序项目更方便。如果您没有Visual Studio 2017安装项目模板,则可以下载here。