设为首页 加入收藏

TOP

根据HKey查找当前打开的注册表路径
2014-11-18 18:37:20 】 浏览:3878
Tags:根据 HKey 查找 当前 打开 注册表 路径

  在StackOverFlow里找到的,一定要收藏起来。


  #include


  #include


  typedef LONG NTSTATUS;


  #ifndef STATUS_SUCCESS


  #define STATUS_SUCCESS ((NTSTATUS)0x00000000L)


  #endif


  #ifndef STATUS_BUFFER_TOO_SMALL


  #define STATUS_BUFFER_TOO_SMALL ((NTSTATUS)0xC0000023L)


  #endif


  std::wstring GetKeyPathFromKKEY(HKEY key)


  {


  std::wstring keyPath;


  if (key != NULL)


  {


  HMODULE dll = LoadLibrary(L"ntdll.dll");


  if (dll != NULL) {


  typedef DWORD (__stdcall *ZwQueryKeyType)(


  HANDLE KeyHandle,


  int KeyInformationClass,


  PVOID KeyInformation,


  ULONG Length,


  PULONG ResultLength);


  ZwQueryKeyType func = reinterpret_cast (::GetProcAddress(dll, "ZwQueryKey"));


  if (func != NULL) {


  DWORD size = 0;


  DWORD result = 0;


  result = func(key, 3, 0, 0, &size);


  if (result == STATUS_BUFFER_TOO_SMALL)


  {


  size = size + 2;


  wchar_t* buffer = new (std::nothrow) wchar_t[size];


  if (buffer != NULL)


  {


  result = func(key, 3, buffer, size, &size);


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇A*算法实现迷宫最短路径搜索(C+.. 下一篇计算机二级辅导:C/C++中的联合uni..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目