社区
界面
帖子详情
怎么删除一个嵌套多层的注册表项啊??
chen_chen1212
2008-08-19 10:49:57
怎么删除一个嵌套多层的注册表项啊??我要把这个注册表项都删除掉??
...全文
126
2
打赏
收藏
怎么删除一个嵌套多层的注册表项啊??
怎么删除一个嵌套多层的注册表项啊??我要把这个注册表项都删除掉??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
吹泡泡的小猫
2008-08-19
打赏
举报
回复
#include <windows.h>
#include <stdio.h>
#include <strsafe.h>
//*************************************************************
//
// RegDelnodeRecurse()
//
// Purpose: Deletes a registry key and all it's subkeys / values.
//
// Parameters: hKeyRoot - Root key
// lpSubKey - SubKey to delete
//
// Return: TRUE if successful.
// FALSE if an error occurs.
//
//*************************************************************
BOOL RegDelnodeRecurse (HKEY hKeyRoot, LPTSTR lpSubKey)
{
LPTSTR lpEnd;
LONG lResult;
DWORD dwSize;
TCHAR szName[MAX_PATH];
HKEY hKey;
FILETIME ftWrite;
// First, see if we can delete the key without having
// to recurse.
lResult = RegDeleteKey(hKeyRoot, lpSubKey);
if (lResult == ERROR_SUCCESS)
return TRUE;
lResult = RegOpenKeyEx (hKeyRoot, lpSubKey, 0, KEY_READ, &hKey);
if (lResult != ERROR_SUCCESS)
{
if (lResult == ERROR_FILE_NOT_FOUND) {
printf("Key not found.\n");
return TRUE;
}
else {
printf("Error opening key.\n");
return FALSE;
}
}
// Check for an ending slash and add one if it is missing.
lpEnd = lpSubKey + lstrlen(lpSubKey);
if (*(lpEnd - 1) != TEXT('\\'))
{
*lpEnd = TEXT('\\');
lpEnd++;
*lpEnd = TEXT('\0');
}
// Enumerate the keys
dwSize = MAX_PATH;
lResult = RegEnumKeyEx(hKey, 0, szName, &dwSize, NULL,
NULL, NULL, &ftWrite);
if (lResult == ERROR_SUCCESS)
{
do {
StringCchCopy (lpEnd, MAX_PATH*2, szName);
if (!RegDelnodeRecurse(hKeyRoot, lpSubKey)) {
break;
}
dwSize = MAX_PATH;
lResult = RegEnumKeyEx(hKey, 0, szName, &dwSize, NULL,
NULL, NULL, &ftWrite);
} while (lResult == ERROR_SUCCESS);
}
lpEnd--;
*lpEnd = TEXT('\0');
RegCloseKey (hKey);
// Try again to delete the key.
lResult = RegDeleteKey(hKeyRoot, lpSubKey);
if (lResult == ERROR_SUCCESS)
return TRUE;
return FALSE;
}
//*************************************************************
//
// RegDelnode()
//
// Purpose: Deletes a registry key and all it's subkeys / values.
//
// Parameters: hKeyRoot - Root key
// lpSubKey - SubKey to delete
//
// Return: TRUE if successful.
// FALSE if an error occurs.
//
//*************************************************************
BOOL RegDelnode (HKEY hKeyRoot, LPTSTR lpSubKey)
{
TCHAR szDelKey[2 * MAX_PATH];
StringCchCopy (szDelKey, MAX_PATH*2, lpSubKey);
return RegDelnodeRecurse(hKeyRoot, szDelKey);
}
void main()
{
BOOL bSuccess;
bSuccess = RegDelnode(HKEY_CURRENT_USER,
TEXT("Software\\TestDir"));
if(bSuccess)
printf("Success!\n");
else printf("Failure.\n");
}
yuzhongzhu
2008-08-19
打赏
举报
回复
递归删除,搜下吧,代码好像很多的
java大数据培训学校全套教材--5)接口
嵌套
类
所以这套课程都能自己学下来,等于上了培训学 校一次,完全可以找个java工程师的工作了。 本门课程为"java大数据培训学校全套教材"系列课程的第五篇,通过学习接口,内部类,等相关概念,让大家对接口
嵌套
类编程 ...
多层
数据库开发三:创建
多层
应用程序
第三章 创建
多层
应用程序
一个
多层
的Client/Server应用程序在逻辑上划分为几个部分,分别在不同的机器上运行,这些机器既可以在
一个
局域网内,也可以在Internet上。
多层
体系结构最大的优势可以概括为两点,一是集中...
注册表
相关
简单地说,它是用来对windows操作系统进行配置的
一个
工具.通过它,可以对操作系统及应用软件进行优化,可以自己设置windows的使用权限,可以解决硬件及网络设置不当带来的故障甚至可以改造自己的操作系统。 在...
多层
数据库开发三:创建
多层
应用程序 选择自 CYRTSOFT 的 Blog
第三章 创建
多层
应用程序
一个
多层
的Client/Server应用程序在逻辑上划分为几个部分,分别在不同的机器上运行,这些机器既可以在
一个
局域网内,也可以在Internet上。
多层
体系结构最大的优势可以概括为两点,一是集中...
AU3学习笔记
目录 1. AU3是什么?能做什么? ...答:AU3是
一个
类似BASIC的免费脚本语言;AU3能进行GUI操作、能模拟键盘/鼠标事件、能对窗口及窗口中的标准控件进行互动操作(如窗口移动、控件响应等)、能直接
界面
15,978
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章