2017-05-30 136 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