2017-05-30 200 views
0

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

现在我搜索一个解决方案,进程启动器类,但我不知道它是如何工作: https://docs.microsoft.com/en-us/uwp/api/Windows.ApplicationModel.FullTrustProcessLauncher#Windows_ApplicationModel_FullTrustProcessLauncher_LaunchFullTrustProcessForCurrentAppAsync_System_String_

如果你hadve一个想法,一个soltion甚至为例,我会心存感激

问候

PS:遗憾的英语不好,我是法国人^^

回答

1

对不起,那是行不通的。

“完全信任进程启动类 激活从通用的Windows应用程序组件在相同的应用程序包的应用程序的完全信任的Win32组件。

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

由于微软希望UWP更安全,所以您最好的选择可能是将您的游戏捆绑在一个更大的应用程序中。让起始页面/表格成为游戏的菜单,然后切换到另一个表格。

小心地命名你的类,表单,资源,让你知道它们是什么游戏 - ChessMain,ChessForm,chess_logo.jpg; CheckersMain,CheckersForm,CheckersPlayerTurn。

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/

女士使用PE和P/Invoke来判断是否UWP使用不允许的DLL。

所以你可以使用loadlibrary加载它。

你可以用win32启动exe。

但它今天可能有效,但明天可能会中断。

+0

,但我不知道它会与Hololens工作? –

+0

@NabilABBACH我不确定。 – lindexi