可以有两种的方式
第一:通过winecec()函数,但是有取得注册表的键值
第二:通过shellexec()他很简单 就是一句话
ShellExecute(NULL,"open","f:\\11.htm",NULL,NULL,SW_SHOW);
把第一种的代码// HKEY hKetRoot,hkeySub;
// char ValueName[MAX_PATH];
// unsigned char DataValue[MAX_PATH];
// unsigned long cbValueName=MAX_PATH;
// unsigned long cbDataValue=MAX_PATH;
// char IE[MAX_PATH];
// DWORD dwType;
// if(RegOpenKey(HKEY_CLASSES_ROOT,NULL,&hKetRoot)==ERROR_SUCCESS)//hKetRoot接受打开键值得HANDLE
// {
// if(RegOpenKeyEx(hKetRoot,"htmlfile\\shell\\open\\command",0,KEY_ALL_ACCESS,&hkeySub)==ERROR_SUCCESS)
// { //列举了指定打开得注册表得值
// RegEnumValue(hkeySub,0,ValueName,&cbValueName,NULL,&dwType,DataValue,&cbDataValue);
// strcpy(IE,(char *)DataValue);
// strcat(IE,"F:\\11.htm");
// //q启动浏览器
// WinExec(IE,SW_SHOW);
//
// }
// else
// MessageBox("浏览器打开失败","信息提示",MB_OK);
//
// }
// else
// MessageBox("浏览器打开失败","信息提示",MB_OK);
// RegCloseKey(hKetRoot);
// RegCloseKey(hkeySub);
RegOpenKeyEx
RegOpenKeyEx()
函数功能描述:打开一个制定的注册表键
函数原型:
LONG RegOpenKeyEx(
HKEY hKey, // 已经打开键的句柄
LPCTSTR lpSubKey, // 子键的名称
DWORD ulOptions, // 保留
REGSAM samDesired, // 安全访问标记
PHKEY phkResult // 指向将要打开键的句柄
);
参数:
hKey
[输入] 当前打开或者以下预定义的键。
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
Windows NT/2000/XP: HKEY_PERFORMANCE_DATA
Windows 95/98/Me: HKEY_DYN_DATA
lpSubKey
[输入] 指向一个非中断字符串包含将要打开键的名称。如果参数设置为NULL 或者指向一个空字符串,过程将打开一个新的句柄由hKey参数确定的值。这种情况下,过程不会关闭先前已经打开的句柄。
ulOptions
保留,必须设置为 0
samDesired
[输入] 对指定键希望得到的访问权限的访问标记。这个参数可以使下列值的联合。
值 Meaning
KEY_CREATE_LINK 许可创建一个符号连接
KEY_CREATE_SUB_KEY 许可创建子键
KEY_ENUMERATE_SUB_KEYS 许可列举子键
KEY_EXECUTE 许可读访问
KEY_NOTIFY 许可提供更该通知
KEY_QUERY_VALUE 许可查询子键数据
KEY_SET_VALUE 许可设置子键数据
KEY_ALL_ACCESS 联合了 KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS,
KEY_NOTIFY, KEY_CREATE_SUB_KEY, KEY_CREATE_LINK,
KEY_SET_VALUE 访问权限并且加上所有的标准访问权限
除了SYNCHRONIZE
KEY_READ 联合了 STANDARD_RIGHTS_READ, KEY_QUERY_VALUE,
KEY_ENUMERATE_SUB_KEYS,KEY_NOTIFY 访问权限
KEY_WOW64_64KEY Windows XP: 使64位或者32位应用程序打开64位键
KEY_WOW64_32KEY Windows XP: 使64位或者32位应用程序打开32位键
KEY_WRITE 联合 STANDARD_RIGHTS_WRITE, KEY_SET_VALUE,
KEY_CREATE_SUB_KEY访问权限
phkResult
[输出] 指向一个被打开键返回的句柄的指针。当不再需要句柄,必须调用 RegCloseKey 关闭它
第一:通过winecec()函数,但是有取得注册表的键值
第二:通过shellexec()他很简单 就是一句话
ShellExecute(NULL,"open","f:\\11.htm",NULL,NULL,SW_SHOW);
把第一种的代码// HKEY hKetRoot,hkeySub;
// char ValueName[MAX_PATH];
// unsigned char DataValue[MAX_PATH];
// unsigned long cbValueName=MAX_PATH;
// unsigned long cbDataValue=MAX_PATH;
// char IE[MAX_PATH];
// DWORD dwType;
// if(RegOpenKey(HKEY_CLASSES_ROOT,NULL,&hKetRoot)==ERROR_SUCCESS)//hKetRoot接受打开键值得HANDLE
// {
// if(RegOpenKeyEx(hKetRoot,"htmlfile\\shell\\open\\command",0,KEY_ALL_ACCESS,&hkeySub)==ERROR_SUCCESS)
// { //列举了指定打开得注册表得值
// RegEnumValue(hkeySub,0,ValueName,&cbValueName,NULL,&dwType,DataValue,&cbDataValue);
// strcpy(IE,(char *)DataValue);
// strcat(IE,"F:\\11.htm");
// //q启动浏览器
// WinExec(IE,SW_SHOW);
//
// }
// else
// MessageBox("浏览器打开失败","信息提示",MB_OK);
//
// }
// else
// MessageBox("浏览器打开失败","信息提示",MB_OK);
// RegCloseKey(hKetRoot);
// RegCloseKey(hkeySub);
RegOpenKeyEx
RegOpenKeyEx()
函数功能描述:打开一个制定的注册表键
函数原型:
LONG RegOpenKeyEx(
HKEY hKey, // 已经打开键的句柄
LPCTSTR lpSubKey, // 子键的名称
DWORD ulOptions, // 保留
REGSAM samDesired, // 安全访问标记
PHKEY phkResult // 指向将要打开键的句柄
);
参数:
hKey
[输入] 当前打开或者以下预定义的键。
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
Windows NT/2000/XP: HKEY_PERFORMANCE_DATA
Windows 95/98/Me: HKEY_DYN_DATA
lpSubKey
[输入] 指向一个非中断字符串包含将要打开键的名称。如果参数设置为NULL 或者指向一个空字符串,过程将打开一个新的句柄由hKey参数确定的值。这种情况下,过程不会关闭先前已经打开的句柄。
ulOptions
保留,必须设置为 0
samDesired
[输入] 对指定键希望得到的访问权限的访问标记。这个参数可以使下列值的联合。
值 Meaning
KEY_CREATE_LINK 许可创建一个符号连接
KEY_CREATE_SUB_KEY 许可创建子键
KEY_ENUMERATE_SUB_KEYS 许可列举子键
KEY_EXECUTE 许可读访问
KEY_NOTIFY 许可提供更该通知
KEY_QUERY_VALUE 许可查询子键数据
KEY_SET_VALUE 许可设置子键数据
KEY_ALL_ACCESS 联合了 KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS,
KEY_NOTIFY, KEY_CREATE_SUB_KEY, KEY_CREATE_LINK,
KEY_SET_VALUE 访问权限并且加上所有的标准访问权限
除了SYNCHRONIZE
KEY_READ 联合了 STANDARD_RIGHTS_READ, KEY_QUERY_VALUE,
KEY_ENUMERATE_SUB_KEYS,KEY_NOTIFY 访问权限
KEY_WOW64_64KEY Windows XP: 使64位或者32位应用程序打开64位键
KEY_WOW64_32KEY Windows XP: 使64位或者32位应用程序打开32位键
KEY_WRITE 联合 STANDARD_RIGHTS_WRITE, KEY_SET_VALUE,
KEY_CREATE_SUB_KEY访问权限
phkResult
[输出] 指向一个被打开键返回的句柄的指针。当不再需要句柄,必须调用 RegCloseKey 关闭它