如何在Vista下通过编程修改注册表HKEY_LOCAL_MACHINE下的任何键值 vista ,只能纯支持一下了... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你是要改什么?是HKEY_LOCAL_MACHINE下的项还是key?项好像是不能改的,但是key是可以随便添加,删除,修改的。 DWORD dwDisp; HKEY hKey = NULL; HRESULT hRes; TCHAR szValue[1024]; _tcscpy(szValue,TEXT("Test Value")); hRes = ::RegCreateKeyEx( HKEY_LOCAL_MACHINE, _T("SOFTWARE"), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_READ|KEY_WRITE, NULL, &hKey, &dwDisp); if (hRes == ERROR_SUCCESS ) { hRes = ::RegSetValueEx( hKey, _T("RegTest"), 0, REG_SZ, (LPBYTE)szValue, (lstrlen(szValue) + 1) * sizeof(TCHAR) ); ::RegCloseKey( hKey ); }这段代码是在HKEY_LOCAL_MACHINE\SOFTWARE下添加了RegTest=“Test Value”的效果,希望对楼主有用。 use CoCreateInstanceAsAdmin to create a COM objectHRESULT CoCreateInstanceAsAdmin(HWND hwnd, REFCLSID rclsid, REFIID riid, void ** ppv) { BIND_OPTS3 bo; WCHAR wszCLSID[50]; WCHAR wszMonikerName[300]; StringFromGUID2(rclsid, wszCLSID, sizeof(wszCLSID)/sizeof(wszCLSID[0])); HRESULT hr = StringCchPrintf(wszMonikerName, sizeof(wszMonikerName)/sizeof(wszMonikerName[0]), L"Elevation:Administrator!new:%s", wszCLSID); if (FAILED(hr)) return hr; memset(&bo, 0, sizeof(bo)); bo.cbStruct = sizeof(bo); bo.hwnd = hwnd; bo.dwClassContext = CLSCTX_LOCAL_SERVER; return CoGetObject(wszMonikerName, &bo, riid, ppv);} Try to use Shell programming. 好,我马上去试随便问一下,如何编码实现自己的程序在Administrator的权限下运行? 蒋大哥的函数我不会用,哪个师傅交一下,我应该给那个函数的形参送什么值?BIND_OPTS3 ??没有定义,应该包含哪些头文件和库?在线等谢谢各位!准备送大分。 http://msdn2.microsoft.com/en-us/library/aa480152.aspx 为什么我用CoCreateInstanceAsAdmin返回的总是负值? vista下需要提升权限另外需要diable uac 用Manifest也可以实现啊。具体上网搜索一下吧。另外,即便是XP,2000,2003,修改HKEY_LOCAL_MACHINE下的键值也是需要管理员权限的。不然会返回错误。 为什么HMENU hMenu一定要初始化?~ 呼叫子菜单事件 不能准确取出大文件文件大小 高人進來討論一下,大連接數,高並發服務器線程與內存的管理方法? 帮我设计一下数据库 救一下:如何删除后面带空格的目录! 求助,谢谢 请教:(在程序中)如何取得我的系统所安装的所有数据库服务器名称及其版本?谢谢! 关于 ResumeThread()函数 :Access violation! vc 连接dimino 数据库 高分求学生成绩管理系统 急用啊,要C++或C语言的
HKEY hKey = NULL;
HRESULT hRes; TCHAR szValue[1024];
_tcscpy(szValue,TEXT("Test Value")); hRes = ::RegCreateKeyEx( HKEY_LOCAL_MACHINE, _T("SOFTWARE"), 0, NULL,
REG_OPTION_NON_VOLATILE, KEY_READ|KEY_WRITE, NULL, &hKey, &dwDisp);
if (hRes == ERROR_SUCCESS )
{
hRes = ::RegSetValueEx( hKey, _T("RegTest"), 0, REG_SZ, (LPBYTE)szValue, (lstrlen(szValue) + 1) * sizeof(TCHAR) );
::RegCloseKey( hKey );
}
这段代码是在HKEY_LOCAL_MACHINE\SOFTWARE下添加了RegTest=“Test Value”的效果,希望对楼主有用。
HRESULT CoCreateInstanceAsAdmin(HWND hwnd, REFCLSID rclsid, REFIID riid, void ** ppv) {
BIND_OPTS3 bo;
WCHAR wszCLSID[50];
WCHAR wszMonikerName[300]; StringFromGUID2(rclsid, wszCLSID, sizeof(wszCLSID)/sizeof(wszCLSID[0]));
HRESULT hr = StringCchPrintf(wszMonikerName,
sizeof(wszMonikerName)/sizeof(wszMonikerName[0]),
L"Elevation:Administrator!new:%s",
wszCLSID);
if (FAILED(hr))
return hr;
memset(&bo, 0, sizeof(bo));
bo.cbStruct = sizeof(bo);
bo.hwnd = hwnd;
bo.dwClassContext = CLSCTX_LOCAL_SERVER;
return CoGetObject(wszMonikerName, &bo, riid, ppv);
}
随便问一下,如何编码实现自己的程序在Administrator的权限下运行?
BIND_OPTS3 ??没有定义,应该包含哪些头文件和库?
在线等
谢谢各位!准备送大分。
另外需要diable uac
具体上网搜索一下吧。另外,即便是XP,2000,2003,修改HKEY_LOCAL_MACHINE下的键值也是需要管理员权限的。不然会返回错误。