在uwp app中启动.exe

时间:2017-05-30 23:28:04

标签: javascript c# windows uwp hololens

在这里我的问题,我为Windows 10(PC,手机,Hololens UWP,...)制作了一对迷你游戏,但现在我想制作一个发射器来收集我所有的游戏,比如蒸汽(例如) 。 但是,根据微软的说法,从UWP应用程序启动.exe甚至.msi是不可能的 - > (“此API还对可以启动的文件类型施加了一些限制。许多包含可执行代码的文件类型,例如.exe,.msi和.js文件,都被阻止启动。此限制可以保护用户免受潜在恶意攻击可以修改系统的文件。 “)

现在我搜索一个解决方案,也许是使用Full Trust Process Launcher Class,但我不知道它是如何工作的: https://docs.microsoft.com/en-us/uwp/api/Windows.ApplicationModel.FullTrustProcessLauncher#Windows_ApplicationModel_FullTrustProcessLauncher_LaunchFullTrustProcessForCurrentAppAsync_System_String_

如果你有一个想法,一个解决方案甚至一个例子,我将非常感谢

祝你好运

PS:抱歉英语不好,我是法国人^^

3 个答案:

答案 0 :(得分:2)

您可以通过在游戏中支持自定义协议来实现此目的。然后,您的启动器应用程序可以使用LaunchUriAsync API通过该协议启动它们:

https://docs.microsoft.com/en-us/uwp/api/windows.system.launcher#Windows_System_Launcher_LaunchUriAsync_Windows_Foundation_Uri_

答案 1 :(得分:1)

抱歉,这不起作用。

“完全信任流程启动器类” 从同一应用程序包中的通用Windows应用程序组件激活应用程序的完全信任Win32组件。

换句话说,这是运行当前应用程序的Win32组件。

由于Microsoft希望UWP更安全,因此您最好的选择可能是将您的游戏捆绑在一个更大的应用程序中。让开始页面/表单成为游戏菜单,然后切换到每个游戏的另一种形式。

仔细命名您的课程,表格和资源,以便了解它们的用途 - ChessMain,ChessForm,chess_logo.jpg; CheckersMain,CheckersForm,CheckersPlayerTurn。

答案 2 :(得分:0)

我有一种黑客方式可能有助于在uwp中启动exe。

如果你想使用其他目录中的win32 dll,请获取可以使用它的LoadLibrary。

您可以使用

MEMORY_BASIC_INFORMATION info = {};  
if (VirtualQuery(VirtualQuery, &info, sizeof(info)))  
{
    auto kernelAddr = (HMODULE)info.AllocationBase;
    auto loadlibraryPtr = GetProcAddress(kernelAddr, "LoadLibraryExW");
    // load your library here ...
}

获取loadlibrary并使用loadlibrary dll。

请参阅https://hjc.im/3-ways-to-bypass-wack/

Ms使用PE和P / Invoke来判断uwp是否使用了不允许的dll。

因此您可以使用loadlibrary加载它。

您可以通过win32启动exe。

但它今天可能会奏效但明天可能会破裂。