一个往环境变量path中添加路径的工具
2007-01-27 14:44
441 查看
#include <iostream>
#include <Windows.h>
using namespace std;
#define E_NO_PARAM 1
#define E_NO_ERROR 0
#define E_READ_FAILED -1
#define E_CLOSE_FAILDE 2
#define E_EXSITE 3
int _tmain(int argc, _TCHAR* argv[])
{
if ( argc < 2)
{
cout<<"用法:程序名 注册表值"<<endl;
return E_NO_PARAM;
}
HKEY hKey;
char szValue[1024];
char szAddString[1024];
LONG lRet;
DWORD dwSize = 1024;
ZeroMemory(szValue,1024);
ZeroMemory(szAddString,1024);
sprintf(szAddString,argv[1]);
lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SYSTEM//CurrentControlSet//Control//Session Manager//Environment",
0, KEY_ALL_ACCESS, &hKey );
if ( lRet != ERROR_SUCCESS )
{
cout<<"添加注册表失败,请手工添加"<<endl;
return E_READ_FAILED;
}
trace("查找注册表成功");
lRet = RegQueryValueEx(hKey,"path",NULL,NULL,(LPBYTE)szValue,&dwSize);
if ( lRet != ERROR_SUCCESS )
{
cout<<"查询值失败,请手工添加"<<endl;
RegCloseKey(hKey);
return E_READ_FAILED;
}
trace("读取注册表值成功");
trace(szValue);
if ( strstr(szValue,szAddString) != NULL )
{
trace("已经存在该值");
RegCloseKey(hKey);
return E_EXSITE;
}
strcat(szValue,";");
strcat(szValue,szAddString);
trace(szValue);
lRet = RegSetValueEx(hKey,"path",0,REG_EXPAND_SZ,(LPBYTE)szValue,sizeof(szValue)+1 );
if ( lRet != ERROR_SUCCESS )
{
cout<<"添加注册表失败,请手工添加"<<endl;
RegCloseKey(hKey);
return E_READ_FAILED;
}
trace("添加注册表成功");
lRet = RegCloseKey(hKey);
if ( lRet != ERROR_SUCCESS )
{
cout<<"关闭注册表键失败"<<endl;
return E_CLOSE_FAILDE;
}
trace("关闭注册表成功");
return E_NO_ERROR;
}
#include <Windows.h>
using namespace std;
#define E_NO_PARAM 1
#define E_NO_ERROR 0
#define E_READ_FAILED -1
#define E_CLOSE_FAILDE 2
#define E_EXSITE 3
int _tmain(int argc, _TCHAR* argv[])
{
if ( argc < 2)
{
cout<<"用法:程序名 注册表值"<<endl;
return E_NO_PARAM;
}
HKEY hKey;
char szValue[1024];
char szAddString[1024];
LONG lRet;
DWORD dwSize = 1024;
ZeroMemory(szValue,1024);
ZeroMemory(szAddString,1024);
sprintf(szAddString,argv[1]);
lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SYSTEM//CurrentControlSet//Control//Session Manager//Environment",
0, KEY_ALL_ACCESS, &hKey );
if ( lRet != ERROR_SUCCESS )
{
cout<<"添加注册表失败,请手工添加"<<endl;
return E_READ_FAILED;
}
trace("查找注册表成功");
lRet = RegQueryValueEx(hKey,"path",NULL,NULL,(LPBYTE)szValue,&dwSize);
if ( lRet != ERROR_SUCCESS )
{
cout<<"查询值失败,请手工添加"<<endl;
RegCloseKey(hKey);
return E_READ_FAILED;
}
trace("读取注册表值成功");
trace(szValue);
if ( strstr(szValue,szAddString) != NULL )
{
trace("已经存在该值");
RegCloseKey(hKey);
return E_EXSITE;
}
strcat(szValue,";");
strcat(szValue,szAddString);
trace(szValue);
lRet = RegSetValueEx(hKey,"path",0,REG_EXPAND_SZ,(LPBYTE)szValue,sizeof(szValue)+1 );
if ( lRet != ERROR_SUCCESS )
{
cout<<"添加注册表失败,请手工添加"<<endl;
RegCloseKey(hKey);
return E_READ_FAILED;
}
trace("添加注册表成功");
lRet = RegCloseKey(hKey);
if ( lRet != ERROR_SUCCESS )
{
cout<<"关闭注册表键失败"<<endl;
return E_CLOSE_FAILDE;
}
trace("关闭注册表成功");
return E_NO_ERROR;
}
相关文章推荐
- Windows7添加路径到path环境变量
- RedHat 下添加路径到环境变量PATH中
- 在环境变量PATH中添加路径
- 如何在fish中添加PATH路径(环境变量)
- Mac 可设置环境变量的位置、查看和添加PATH环境变量
- Linux系统下修改环境变量PATH路径
- Path环境变量包含不存在的路径时对dll搜索的影响
- 查看修改添加环境变量的工具——Rapid Environment Editor
- linux下添加PATH环境变量
- 为Ubuntu添加PATH环境变量
- linux下添加PATH环境变量
- Linux系统中增加和删除环境变量PATH路径详解
- 给PATH环境变量增加自己的命令搜索路径
- linux 添加环境变量 $PATH
- 利用Path环境变量解决oracle数据库和owb工具不兼容问题!
- Mac 可设置环境变量的位置、查看和添加PATH环境变量
- Mac 可设置环境变量的位置、查看和添加PATH环境变量
- linux下查看和添加PATH环境变量
- Mac osx 可设置环境变量的位置、查看和添加PATH环境变量
- 如何在cmd命令行中查看、修改、删除与添加环境变量,语法格式例子:set path;echo %APPDATA%