• 9870阅读
  • 1回复

解决烦人的UAC设置 [复制链接]

上一主题 下一主题
离线20091001753
 

只看楼主 倒序阅读 楼主  发表于: 2012-03-28
起因:我用QT为某款游戏写了外挂,其中需要用已逆向修改的文件替换掉游戏源文件。但是UAC设置会导致QFile很多功能无法正常使用。
解决:首先判断UAC是否开启,然后提供两种解决方式
1.联系客服:弹出客服的QQ,然后进行远程协助。这种方式适合电脑小白。
2.提示处理:弹出UAC设置对话框,提示玩家操作。

关键代码如下:
  1. void Widget::CloseUAC()
  2. {
  3.     bool isuac = false;
  4.     HKEY hkey = NULL;
  5.     DWORD EnableLUA=0;
  6.     DWORD type = REG_DWORD;
  7.     DWORD size = sizeof(DWORD);
  8.     //读取系统信息
  9.     OSVERSIONINFO osinfo={ sizeof(osinfo) };
  10.     if(GetVersionEx(&osinfo));
  11.         if(osinfo.dwMajorVersion>5)
  12.             if(RegOpenKeyEx(
  13.                 HKEY_LOCAL_MACHINE,
  14.                 L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\",
  15.                 0,KEY_READ,
  16.                 &hkey)==ERROR_SUCCESS&&
  17.                 RegQueryValueEx(hkey,L"EnableLUA",NULL,&type,(BYTE*)&EnableLUA,&size)==ERROR_SUCCESS
  18.                 )isuac=(EnableLUA==1)?true:false;
  19.     RegCloseKey(hkey);
  20.     if(!isuac)return;
  21.     //弹出UAC设置窗口
  22.     ShellExecute(NULL,L"open",L"C:\\windows\\system32\\useraccountcontrolsettings.exe",NULL, NULL,SW_SHOWNORMAL);
  23.     //弹出UAC错误窗口
  24.     QMessageBox box;
  25.     box.setIcon(QMessageBox::Critical);
  26.     box.setWindowTitle("请求更改系统UAC设置");
  27.     box.setText("<FONT size=4>"
  28.         "<div><b>解决方式·一(推荐)</b></div>"
  29.         "<div>点击此错误框的“确认”按钮,将弹出客服QQ</div>"
  30.         "<div>添加为QQ好友,客服将远程协助完成操作</div>"
  31.         "<div><b>解决方式·二</b></div>"
  32.         "<div>目前已弹出名为“用户帐户控制设置”的窗口</div>"
  33.         "<div>请将此窗口左侧的拉条拖到最下,并点击确定</div>"
  34.         "<div>完成后会提示要求重启电脑,并允许,即可解决</div>"
  35.         "<div>选择 <b>确定</b> :结束程序,并 QQ 联系客服</div>"
  36.         "<div>选择 <b>取消</b> :结束程序</div>"
  37.         "</FONT>");
  38.     box.setStandardButtons(QMessageBox::Ok|QMessageBox::Cancel);
  39.     box.setDetailedText(
  40.         "    UAC(User Account Control:用户帐户控制)是微软为了提高系统安全性而在Vista中开始引入的新技术。\n"
  41.         "    它在开启的情况下,经常会弹出“您想允许XXX对此计算机进行更改吗?”的询问窗口。\n"
  42.         "    此功能有效地遏制了病毒部分功能的实现,但也殃及了游戏辅助软件部分功能的实现。\n");
  43.     switch(box.exec())
  44.     {
  45.         case QMessageBox::Ok:QDesktopServices::openUrl(QUrl("http://wpa.qq.com/msgrd?V=1&Uin=123456789&Site=ioshenmue&Menu=yes"));break;
  46.     }
  47.     exit(0);
  48. }

下载 UAC.rar (3 K) 下载次数:61

(づ ̄ 3 ̄)づ
离线fish0619

只看该作者 1楼 发表于: 2012-03-28
牛人啊。。写外挂。我都不懂得怎么样找出数值的内存地址。或者能够找出来,但是找不到从静态地址开始的偏移量。
快速回复
限100 字节
 
上一个 下一个