繁体   English   中英

如何在UWP应用中启动外部可执行文件

[英]How launch external executable in uwp app

在这里,我的问题是,我为Windows 10创建了一个小型迷你游戏(PC,电话,Hololens UWP等),但是现在我想制作一个启动器来收集我所有的游戏,例如Steam。 但是,根据Microsoft的说法,不可能从UWP应用程序启动> .exe或.msi->(“此API还对可以启动的文件类型施加了一些限制。例如,许多文件类型都包含可执行代码。 exe,.msi和.js文件被阻止启动。此限制可以保护用户免受可能修改系统的潜在恶意文件的侵害。”)

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

如果您有想法,解决方案甚至是示例,我将不胜感激

最好的祝福

PS:对不起,英语不好,我是法语^^

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

https://docs.microsoft.com/zh-cn/uwp/api/windows.system.launcher#Windows_System_Launcher_LaunchUriAsync_Windows_Foundation_Uri_

抱歉,这行不通。

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

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

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

仔细命名您的班级,形式和资源,以便您知道它们的用途-ChessMain,ChessForm,chess_logo.jpg; CheckersMain,CheckersForm,CheckersPlayerTurn。

我有一种破解方法,可能有助于在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 ...
}

获取加载库并用于加载dll。

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

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

因此,您可以使用负载库进行加载。

您可以通过win32启动exe。

但是它可能在今天起作用,但明天可能会失效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM