【发布时间】:2015-02-12 14:22:58
【问题描述】:
目前我正在使用 Click-Once WPF 应用程序。该应用程序是一些不是我开发的第三方应用程序。我也无权访问它的来源。
它通过执行相应的*.appref-ms 链接在Windows 服务器上定期自动运行(使用标准C++ 编写的自制启动器),该链接在安装应用程序时放置在开始菜单路径中。这很好用。
由于该应用程序会定期出现问题,我的启动器需要在启动之前擦除所有配置文件,以便始终获得明确定义的运行。这些文件放置在应用程序的文件夹之一中。其设置的配置路径如下所示(我通过手动搜索 AppData 树找到它):
C:\Users\<UserName>\AppData\Local\Apps\2.0\Data\WM4WPKCW.P5Z\67QVXD6C.0NT\<app>_f6187a2321850a68_0003.0004_1a67f9f1633c43fc\Data\AppFiles\
请注意,此配置路径与应用程序路径(使用不同命名的文件夹)完全不同:
C:\Users\<User>\AppData\Local\Apps\2.0\5HN2CKMO.MPL\YOL20MYR.O8L\<app>_f6187a2321850a68_0003.0004_f6ab8c93b3a43b7c\
由于每次更新 Click-Once 应用程序时此配置路径都会更改,因此我需要通过代码(最好是 C++)自动找到它。不幸的是,我想不出办法来做到这一点。
如何让我的启动器根据其*.appref-ms 文件找到 Click-Once 应用程序的配置路径?
【问题讨论】:
-
配置文件是如何生成的?如果它们是自动生成的,似乎有一个 API 可以获取位置......
-
对于 Click-Once 应用程序本身,这肯定没有问题。但对于外部进程来说,这是完全不同的事情。
-
没有.net 有一些环境的东西。如果不是,那么只需进入 Windows api 级别。获取模块文件名。
-
这是什么“可执行文件的路径被混淆了”,这是什么意思
-
@Alf:路径名由来历不明的十六进制数字组成,没有 API 可以获取它们
标签: c++ .net wpf path clickonce