将客户端放在C:\Program Files (x86)\Shadowsocks\下,使用时软件会报错

如果用管理员打开,则没有问题。
不过如果注释掉requestedExecutionLevel,为其打开uac虚拟化,那么就不用管理员权限了,也就没有上述问题了。
https://msdn.microsoft.com/zh-cn/library/ee532451.aspx
虚拟化是为了帮助现存的应用程序解决兼容性问题而出现的。为Windows 7而设计的新的应用程序不应该对敏感的系统区域进行写入操作,不应该依靠虚拟化来对不正确的应用程序行为进行修正。开发应用程序的时候,应该始终考虑使其运行在标准用户的权限下,而不是在管理员权限下运行。测试您的应用程序时,也要用标准用户权限而不是管理员权限。
虚拟化是为了兼容性,新程序这样做是 Hack。我觉得如果非要解决:用户专门把程序放在 Program Files 甚至 Windows 文件夹下又不愿意以管理员权限启动的话,我们可以提供选项在 %AppData%/shadowsocks 下读写 config 等文件。
@icylogic 嗯,AppData才是王道
如何均衡用户放 U 盘或者打个 zip 包共享给朋友的需求呢?
你放到 C:\Program Files\ 目录下了,这个目录本来就需要管理员权限才能写入。
你放到别的目录就行了,比如 D:\Software\Shadowsocks\ 。
AppData才是王道
干脆来个自动打包/解包工具好啦!(>.<)
为什么非要放在C:\Program Files里呢,放到其他盘或者不需要管理员权限的文件夹不就就没这档子事了.
我对配置文件放哪里无所谓,这个问题就跟加糖还是加盐一样是没有意义的,等绿色软件派和 AppData 派吵完了,根据最后的结论,以后任何人有意见就甩他这个帖子的链接。
放Program Files的提示用管理员权限运行行了。
<----这个人是绿色软件派
<----这个人也是绿色软件派
挖坟
我发现迅雷也是将配置文件保存在程序目录的,而打开迅雷不需要UAC权限
观察了一下,起作用的以下条目

实测 Shadowsocks 也可以这样解决
将 Authenticated Users 换成自己的账户或 User 或 Everyone 效果也一样
Most helpful comment
挖坟
我发现迅雷也是将配置文件保存在程序目录的,而打开迅雷不需要UAC权限
观察了一下,起作用的以下条目
实测 Shadowsocks 也可以这样解决
将 Authenticated Users 换成自己的账户或 User 或 Everyone 效果也一样