BFG*_*BFG 9 c# asp.net uri windows-10
几年前,我在ASP.net网络应用程序中开发了一个Silverlight组件,该组件使用PInvoke访问客户端计算机上的USB(串行COM端口),以允许向某些扫描仪硬件发送命令.
随着Windows 10的出现以及Silverlight不可避免的消亡,我正在寻找在客户端PC上访问硬件的替代方案(这是我们对实现有很多控制权的所有Intranet Web应用程序)
目前我正在寻找根据此页面将应用程序注册到URI方案(简易解决方案):https://msdn.microsoft.com/library/aa767914(v = vs.85) .aspx或者也许是Javascript navigator.msLaunchUri (这似乎不支持Windows 7,我们仍然需要支持)请参阅:https://connect.microsoft.com/IE/feedback/details/864863/documented-api-function-navigator-mslaunchuri-not-本式-窗口7
将应用程序注册到URI方案在Windows 7/8/8.1中运行良好,但在Windows 10中似乎已经改变 - 有谁知道如何实现这一点(通过C#代码,注册表,某些东西)以允许它在Windows 10
Chu*_*d37 11
我最近也想这样做 - 我找到了答案,所以我将它发布在这里以供将来参考,但我在任何地方都找不到 C# 中的工作示例。
首先,您的应用需要requireAdministrator权限。为此,请右键单击解决方案资源管理器中的项目Add New Item,然后单击,然后选择General并最后选择Application Manifest文件(如果您还没有)。在那里,将 更改requestedExecutionLevel为requireAdministrator。节省。
我这是您第一次这样做,您需要重新启动 Visual Studio,因为它可能不在管理员权限下运行。
好的,所以我希望我的应用程序在启动时创建注册表项,因此在我的表单的构造函数中,我输入了以下代码,该代码foo://为名为“oggsplit.exe”的程序(我碰巧遇到过)创建了 URL 协议在我的 C: root 中有,所以我只是用它来测试)
RegistryKey key;
key = Registry.ClassesRoot.CreateSubKey("foo");
key.SetValue("", "URL: Foo Protocol");
key.SetValue("URL Protocol","");
key = key.CreateSubKey("shell");
key = key.CreateSubKey("open");
key = key.CreateSubKey("command");
key.SetValue("", "C:\\oggsplit.exe");
Run Code Online (Sandbox Code Playgroud)
配置完成后,保存并运行程序。你不会得到任何反馈,只要你没有看到任何错误,它就应该能正常工作。现在,打开您的浏览器(无需重新启动或任何操作)并转到地址foo://hello。这是我在 Google Chrome 中的样子:

然后它会询问您是否要从浏览器打开您的应用程序,单击确定。嘿 Presto,您的应用程序从浏览器打开,您现在可以将特定链接放入您的网页以从浏览器打开您的应用程序。 此页面还记录了如何将参数传递给您的程序。
| 归档时间: |
|
| 查看次数: |
3143 次 |
| 最近记录: |