提高 UAC 提示的用户体验
2008-09-24 17:43
218 查看
前几天在园子里看到一些关于UAC的文章。我觉得应用程序应该在不减少功能的情况下尽量减少需要管理员权限的操作,即使需要管理员权限来进行某些操作也不要一启动就提示要管理员权限~这样既没有让用户清楚的知道你拿管理员权限做了些什么又可能导致管理员权限被滥用。本文演示的是在 WinForm 和 WPF 应用程序中点击按钮才弹出 UAC 提示要求管理员权限,这样即使用户不提供管理员权限,我们的应用程序仍然可以完成其他普通权限操作。Windows Vista 中有很多地方都是这样,如打开计算机属性(开始 | 右键计算机 | 属性)是不需要管理员权限的,但从这里点击“设备管理器”或“系统保护”等设置就会弹出 UAC 提示,并且这些按钮前会有一个小盾牌。
先演示在 WinForm 中实现上述功能,以下是关键代码,完整代码在文后提供下载
1// DllImport 以使用 Win32 API
2 [DllImport("user32")]
3 public static extern UInt32 SendMessage(IntPtr hWnd, UInt32 msg, UInt32 wParam, UInt32 lParam);
4
5 public Form1()
9
20 private bool IsAdmin()
24
28 // 需要管理员权限操作的按钮
29 private void button1_Click(object sender, EventArgs e)
30 public Window1()
5
27 private bool IsAdmin()
31
35 // 需要管理员权限操作的按钮
36 private void button1_Click(object sender, RoutedEventArgs e)
37 {
38{
46{
50 MessageBox.Show("未获得管理员权限","操作失败");
51 }
52 }
点击此处下载示例
先演示在 WinForm 中实现上述功能,以下是关键代码,完整代码在文后提供下载
1// DllImport 以使用 Win32 API
2 [DllImport("user32")]
3 public static extern UInt32 SendMessage(IntPtr hWnd, UInt32 msg, UInt32 wParam, UInt32 lParam);
4
5 public Form1()
9
20 private bool IsAdmin()
24
28 // 需要管理员权限操作的按钮
29 private void button1_Click(object sender, EventArgs e)
30 public Window1()
5
27 private bool IsAdmin()
31
35 // 需要管理员权限操作的按钮
36 private void button1_Click(object sender, RoutedEventArgs e)
37 {
38{
46{
50 MessageBox.Show("未获得管理员权限","操作失败");
51 }
52 }
点击此处下载示例
相关文章推荐
- 小交互细节如何显著提高用户的体验
- 使用MSAgent代替传统的MessageBox提示来增用客户端用户体验
- 提高用户体验的26个实用的CSS3和jQuery教程
- 分析能力提高篇四:百度用户体验总监刘超下课,HR内部贴称其“给百度同学造成严重伤害”
- 巧用Ajax的beforeSend 提高用户体验
- 如何提高用户体验
- 传智播客erp项目学习,使用Ajax提高用户体验效果
- 大型社区设计:提高用户体验的10个细节
- 颠覆性的商业模式+专注产品(其实也有大量创新)——互联网核心是用户体验+提高效率
- [转]大型社区设计:提高用户体验的10个细节
- 【转】使用jquery实现图片预加载提高页面加载速度和用户体验
- 提升用户体验---自动邮编提示与验证地址
- 安卓之提高用户的体验度
- 用javascript实现改善用户体验之alert提示效果
- 用户输入查询与拼音首字母的结合,提高用户的操作体验
- 使用e-tag来加快页面加载速度和提高用户体验
- 提高网站用户体验的4个方面
- 土豆网CDN技术降低企业成本提高用户体验
- 选中 复选框单选框 提高用户体验
- 提高用户体验:30秒钟评价一个网页