我在普通程序中调用wininet库的FindFirstUrlCacheEntry(), 结果正常. 这时我的当前用户名为administrator.
但在服务程序中调用该函数时,结果错误, 错误代码为259(无有效数据).
服务程序的用户为system.
估计是system用户的权限不够.如何提升用户的权限?
但在服务程序中调用该函数时,结果错误, 错误代码为259(无有效数据).
服务程序的用户为system.
估计是system用户的权限不够.如何提升用户的权限?
看
http://topic.csdn.net/t/20010811/18/233895.html
你可以查一下函数:LookupPrivilegeName();
{
HANDLE token;
TOKEN_PRIVILEGES TokenPrivileges, PreviousState;
DWORD ReturnLength = 0;
if(OpenProcessToken(GetCurrentProcess(),TOKEN_QUERY | TOKEN_ADJUST_PRIVILEGES,&token))
{
if(LookupPrivilegeValueA(NULL,"SeDebugPrivilege",&TokenPrivileges.Privileges[0].Luid))
{
TokenPrivileges.PrivilegeCount = 1;
TokenPrivileges.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
return (AdjustTokenPrivileges(token,FALSE,&TokenPrivileges,sizeof(TOKEN_PRIVILEGES),
&PreviousState,&ReturnLength));
}
}
return (FALSE);
}
我的登陆用户为sd ,是ADMINISTROR 权限的. 当我以读写 方式打开该KEY 时(RegCreateKeyEx)
没发打开. 以 只读 到是可以打开 .当我手动设置Everyone的权限为FULL CONTROL 时 我就可以以读写方式打开了.
不知道 有什么办法 用代码设置该Everyone 的权限由 READ 到FULL CONTROL
你可以让用户在登陆之后运行一个和服务交互的程序