当前位置: 首页 > 编程语言 > C#

如何使用通用Windows平台(UWP)应用程序执行进程命令(或类似命令)?

时间:2023-04-10 22:19:14 C#

如何使用通用Windows平台(UWP)应用程序执行进程命令(或类似命令)?我正在创建自定义Cortana命令。使用通用Windows平台应用程序注册和执行命令。(GitHub)例如,我注册了以下命令Shutdown以在UWP应用程序中运行此函数staticasyncvoidShutDown(){vardialog=newMessageDialog("这是我将关闭计算机的位置。");等待对话框.ShowAsync();//System.Diagnostics.Process.Start("关机","-s-t10");但是在设置之后我了解到UWP不支持System.Diagnostics.Process。我要运行的自定义命令涉及某种执行,例如启动外部程序、运行另一个脚本或打开网站。UWP不支持它们是有道理的,因为它是通用的,而XBox或手机可能无法做到这一点,但我希望有一些替代方法或破解方法可以在Windows10PC上执行此操作。有没有办法让我在UWP应用程序中执行Process命令或具有类似功能的命令?似乎即使我可以让Cortana执行我的C#代码,UWP也不支持在这种情况下有用的东西。提前致谢。实现类似行为的方法有限。您可以使用LaunchUri来触发其他应用程序注册特定的URI方案。这应该适用于您的网络浏览器场景。更多详细信息:https://msdn.microsoft.com/en-us/library/windows/apps/windows.system.launcher.launchuriasync.aspx您可以使用LaunchForResults触发另一个应用程序并从中获取结果。被调用的应用程序必须支持这一点。更多详情:https://msdn.microsoft.com/en-us/library/windows/apps/mt269386.aspx您可以触发另一个应用程序提供的应用程序服务。被调用的应用程序必须支持这一点。应用服务将在后台执行。(我觉得这很酷。)更多细节在这里:http://blogs.msdn.com/b/mvpawardprogram/archive/2015/06/11/writing-windows-10-app-services-in-javascript.aspx这有点hacky:我不确定这是否仍然有效,但它确实适用于Windows8.1:您可以创建一个所谓的“代理组件”。这允许您从计算机上的应用程序触发所有内容,但您将无法将代理组件发布到商店。这也允许在Windows8.1上使用Process.Start()。它仅适用于旁加载的应用程序。我不确定它是否仍然适用于Windows10。更多信息在这里:https://msdn.microsoft.com/en-us/library/windows/apps/dn630195.aspx简介:只要目标应用程序已注册作为应用程序服务或注册一个协议处理程序(Uri方案),启动另一个应用程序非常容易。如果选项4不再起作用,则您无法启动脚本或其他*.exe。在Windows10周年更新(1607)中,有一个选项可以在PC上启用此方案。使用桌面扩展SDK中的此API,您可以启动以完全用户权限运行的完全信任进程:https://docs.microsoft.com/en-us/uwp/api/Windows.ApplicationModel.FullTrustProcessLauncher这样,您可以支持是点亮它的平台,也就是运行1607或更高版本的PC。您的应用程序仍然是通用的:以上是C#学习教程:Howtoexecuteprocesscommands(orsimilar)withaUniversalWindowsPlatform(UWP)application?如果分享的内容对你有用,需要进一步了解C#学习教程,希望你多多关注——if(ApiInformation.IsApiContractPresent("Windows.ApplicationModel.FullTrustAppContract",1,0)){awaitFullTrustProcessLauncher.LaunchFullTrustProcessForCurrentAppAsync();}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: