用VC2010建立的server项目中访问注册失败。这是为什么?

边学边用边创造 2013-01-22 10:21:01
用VC2010建立的server项目中访问注册失败。这是为什么?
读出IE代理的IP.

在server程序中可以打开注册表,但是RegQueryValueEx函数读出的dwProxyEnable总是 0 .这是错误值。

在非server程序中RegQueryValueEx函数读出的dwProxyEnable总是 1.这是对的值。



HKEY hKEY = NULL;
long lRet = RegOpenKeyEx(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings"), 0, KEY_READ, &hKEY);
if(lRet == ERROR_SUCCESS)
{
DWORD dwType = REG_NONE;
DWORD dwLen = MAX_PATH;

DWORD dwProxyEnable = 0;
dwLen = sizeof(DWORD);
//读取代理类型
lRet = RegQueryValueEx(hKEY, _T("ProxyEnable"), 0, &dwType, (LPBYTE)&dwProxyEnable, &dwLen);
ATLASSERT(ERROR_SUCCESS == lRet && dwType == REG_DWORD);
if (ERROR_SUCCESS == lRet && dwType == REG_DWORD)
{
//设置了代理服务器,则直接读取代理服务器
if (dwProxyEnable == 1)
{
...全文
106 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2013-01-22
  • 打赏
  • 举报
回复
应该是权限问题
傻X 2013-01-22
  • 打赏
  • 举报
回复
你访问的对象有问题啦 服务不属于任何用户,系统给他开的一个专有用户权限,所以假如你读的是HKEY_CURRENT_USER 里面的数据的话就当然读不到了。HKEY_CURRENT_USER 是给当前系统用户的,或者更详细点说,是给本线程的创建用户读的,服务看不到这个。 所以需要模拟登陆一下,再读取。
jimette 2013-01-22
  • 打赏
  • 举报
回复
引用 1 楼 qimiao77 的回复:
SERVER权限很低,你要调整权限才可以的 另外SERVER登陆的话,并不是在HKEY_CURRENT_USER, 应该在HKEY_LOCAL_MACHINE 如果你一定要使用的话可以使用提升权限,模拟登陆 HANDLE hToken; /*TOKEN_PRIVILEGES tkp; tkp.PrivilegeCount=1; tkp.Privile……
学习
贪玩的老鼠 2013-01-22
  • 打赏
  • 举报
回复
SERVER权限很低,你要调整权限才可以的 另外SERVER登陆的话,并不是在HKEY_CURRENT_USER, 应该在HKEY_LOCAL_MACHINE 如果你一定要使用的话可以使用提升权限,模拟登陆 HANDLE hToken; /*TOKEN_PRIVILEGES tkp; tkp.PrivilegeCount=1; tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED; if (OpenProcessToken(GetCurrentProcess(),TOKEN_ALL_ACCESS,&hToken)) { if(LookupPrivilegeValue(NULL,SE_DEBUG_NAME,&tkp.Privileges[0].Luid)) { AdjustTokenPrivileges(hToken,FALSE,&tkp,0x10,(PTOKEN_PRIVILEGES)NULL,0); } } if(hToken) CloseHandle(hToken);*/ if (LogonUser("用户名",NULL,"密码",LOGON32_LOGON_INTERACTIVE,LOGON32_PROVIDER_DEFAULT,&hToken)) { ImpersonateLoggedOnUser(hToken); }

15,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧