2017-08-19 70 views
0

我有DAC转换的应用程序。首次启动时,它将其EXE中的一个复制到localappdata文件夹并启动它。非封装应用程序中的虚拟化应用程序

此EXE被复制到这个文件夹:

C:\Users\user\AppData\Local\Packages\MyApp_z4vxg0xscex6e\LocalCache\Local\MyApp 

,成功启动和GetCurrentPackageId失败,这意味着该EXE没有运行为APPX应用程序,但运行作为一个正常的Win32桌面应用程序。

问题是,我无法得到我的EXE里面的路径。 GetModuleFileName返回此:

C:\Users\user\AppData\Local\MyApp\myexe.exe 

GetFileAttributes这条路径返回-1。 GetCurrentDirectory返回相同的文件夹。

是否是Windows Desktop Bridge平台的bug?有没有办法让我的正在运行的EXE所在的文件夹的路径?

P.S. Windows 10版本1703(内部版本15063.483)。

回答

0

有没有办法让我运行的EXE所在的文件夹的路径?

如果myexe.exe复制到上面描述的本地文件夹,那么您只需要获取本地文件夹路径。为此,您可以得到local folder,然后在UWP获取路径属性,如下所示:

StorageFolder^ storageFolder = ApplicationData::Current->LocalFolder; 
String^path = storageFolder->Path; 

GetFileAttributes这条路径返回-1

UWP应用程序没有权限访问所有文件在设备上。默认情况下,应用可以访问某些文件系统位置,如应用程序安装目录或应用程序数据位置。欲了解更多信息,请参阅。

直接访问C:\Users\user\AppData\Local\MyApp\myexe.exe通过GetFileAttributes可能无法正常工作。更多详情请参考Skip the path

+0

我不会从UWP应用程序调用'GetFileAttributes'。我从完全权限的应用程序中调用它。 –

相关问题