app*_*ski 5 c# permissions uac
首先,大家好,感谢您多次在这里寻找帮助我或教我一些东西.
我为我玩的游戏制作了一个自定义HUD,我正在使用C#中的安装程序,受到同一游戏的另一个HUD的启发.它将所有脚本文件下载并覆盖到现有目录:
C:\Program Files (x86)\Steam\steamapps\me\team fortress 2\tf
Run Code Online (Sandbox Code Playgroud)
[遗憾的是,我无法控制使用哪个文件夹,因为我正在修改Valve安装的文件]
为了删除文件夹,添加文件夹或复制文件,每次启动exe时我都必须使用应用程序清单来增加用户权限:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
Run Code Online (Sandbox Code Playgroud)
不知何故,我受到启发的安装程序是安装到我所在的同一文件夹,而不强制UAC提示.
他的应用程序仅显示安全警告,但如果我取消选中"始终检查"复选框,我可以反复运行它而无需验证任何特殊权限:
http://www.trishtech.com/img_art_a/win7_publisher_not_verified_0.jpg>">
有关如何让我的应用程序更加无缝的建议吗?我已经联系了另一个应用程序的作者,他说他也在使用C#,但他不知道他正在做什么特别的工作.
编辑:我知道的一些事情我们做的不同,以防它们以某种方式产生影响:
如果您尝试写入“C:\Program Files (x86)”,那么您需要管理员权限。因此,其他应用程序不得在那里创建文件,而是创建到不受 UAC 保护的目录。
如果您的文件是针对每个用户的,那么您可以在 appdata 文件夹中创建一个子文件夹并将文件保存在其中。
惯例是创建一个文件夹来标识公司,另一个文件夹来标识产品,
例如
var dir = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
+ "\\MyCompanyName\\MyApplicationName";
Run Code Online (Sandbox Code Playgroud)