您的位置:首页 > 其它

提高 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 }

点击此处下载示例
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: