随笔-89  评论-944  文章-0  trackbacks-0

单一用户休想改变全局状态!

好讨厌,ri啊ri。。。

各位有没有突破方法:找到一个任何用户都可以可靠读写的位置?

posted on 2010-06-01 21:24 溪流 阅读(3172) 评论(10)  编辑 收藏 引用 所属分类: Windows

评论:
# re: 哥终于悟出了UAC编程的精髓 2010-06-01 22:45 | 用户
首先申请权限.....或者运行时就要求管理员权限不就行了么?又不是写木马,没呢么麻烦  回复  更多评论
  
# re: 哥终于悟出了UAC编程的精髓 2010-06-02 00:31 | 溪流
@用户
要求权限就没意思了
就是要不求任何额外权限么,这才叫真正的UAC兼容  回复  更多评论
  
# re: 哥终于悟出了UAC编程的精髓 2010-06-02 09:03 | jmchxy
用户配置放到SHGetSpecialFolderLocation获取CSIDL_APPDATA路径,或注册表的HKCU键下,所有用户的信息放到程序目录或HKLM注册表。没有管理员权限的时候忽略掉对所有用户的更改或者要更改时再申请权限  回复  更多评论
  
# re: 哥终于悟出了UAC编程的精髓 2010-06-02 09:05 | jmchxy
UAC兼容就是要你不能修改其他用户的配置,只能修改本用户的配置。这才是一个多用户系统本来应该具备的状态  回复  更多评论
  
# re: 哥终于悟出了UAC编程的精髓 2010-06-02 09:18 | 溪流
@jmchxy
没错。所以有时候很讨厌,因为难免有一些需求,需要改变全局设置,从而去影响所有用户(,要求标准用户也能做到)。  回复  更多评论
  
# re: 哥终于悟出了UAC编程的精髓 2010-06-02 10:44 | jmchxy
本程序的配置,你可以放到本程序目录,如果有此需求,修改本程序的目录的权限为Everyone可读写就可以了。没有管理员权限的程序不应该更改其他的系统配置。

站在用户角度对我来说,如果一个普通的应用程序(不是系统设置工具)需要请求管理员权限,我会不用它。系统设置只能有管理员改动(我的电脑配置成了改动配置是要必须要输入管理员密码的)。  回复  更多评论
  
# re: 哥终于悟出了UAC编程的精髓 2010-06-02 12:03 | 溪流
@jmchxy
说个例子吧。

假设某个软件有系统级部分和用户级部分。假设系统级部分是一个更新程序,如果某服务器上有新版本,它将把用户级程序更新掉,它运行的时候会有(或者会要求)管理员权限。用户级程序就是一些界面之类的,干些乱七八糟的事情,不允许它需要额外权限。

接下来有个需求,只有在本机的某个用户使用过这个软件的用户级程序后,系统级程序才会去做更新。这个需求,是不是应该拒绝掉?  回复  更多评论
  
# re: 哥终于悟出了UAC编程的精髓 2010-06-02 13:34 | 陈梓瀚(vczh)
就在自己exe旁边写一个软件好了……  回复  更多评论
  
# re: 哥终于悟出了UAC编程的精髓 2010-06-02 14:21 | 溪流
@陈梓瀚(vczh)
执行目录以及工作目录都无法假设是可写的,如 3 楼说的,只有用户的 AppData 以及 HKCU 下是可写的  回复  更多评论
  
# re: 哥终于悟出了UAC编程的精髓 2010-06-03 09:06 | jmchxy
@溪流

不触发UAC也是可以的,你的程序写个安装程序,安装的时候修改本程序目录为Everyone可写,安装程序需要UAC是可以接受的。更新程序只下载新文件覆盖旧文件。

===============================
另外,我个人觉得要更新的时候触发UAC可以接受。对我来说,我是不希望程序在我不知道的时候偷偷改动的。  回复  更多评论
  

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理