关于注册表的问题,80分快来拿哦 看看MSDN,主要用到以下几个函数:RegOpenKeyRegSetValueExRegCloseKey,一般可放在:HKEY_LOCAL_MACHINE下的Software\公司名\软件名\项目名等 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 HKEY hKey; DWORD dwPosition; char IPStr[] = "127.0.0.1"; ::RegCreateKeyEx( HKEY_LOCAL_MACHINE, "SOFTWARE\\company\\AppName", 0, "", 0, KEY_READ | KEY_WRITE, NULL, &hKey, &dwPosition ); ::RegSetValueEx(hKey, "IP", 0, REG_SZ, (LPBYTE) IPStr, strlen(IPStr)+1); ::RegCloseKey( hKey ); char* GetReg(char *_keyname, char *_valuename)//get a value of the registry{ char* pszBuffer; char szObject[256] = ""; DWORD dwBytes; int i = 0; int j = 0; HKEY hKey; char keyname[255]; sprintf(keyname,"%s",_keyname); char valuename[255]; sprintf(valuename,"%s",_valuename); if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,keyname,0,KEY_ALL_ACCESS,&hKey) == ERROR_SUCCESS) { if (RegQueryValueEx( hKey,valuename,NULL, NULL, NULL,&dwBytes ) == ERROR_SUCCESS) { pszBuffer = (char *) HeapAlloc( GetProcessHeap(),HEAP_ZERO_MEMORY,dwBytes ); if (RegQueryValueEx( hKey,valuename,NULL, NULL,(LPBYTE)pszBuffer,&dwBytes ) == ERROR_SUCCESS) { RegCloseKey(hKey); return pszBuffer; } } RegCloseKey(hKey); return ""; } return ""; }void SetReg(char *_keyname, char *_valuename, char *_content)//save to the registry{ char szObject[256] = ""; int i = 0; int j = 0; HKEY hKey; char keyname[255]; sprintf(keyname,"%s",_keyname); char valuename[255]; sprintf(valuename,"%s",_valuename); char content[255]; sprintf(content,"%s",_content); RegOpenKeyEx(HKEY_LOCAL_MACHINE, keyname, 0, KEY_SET_VALUE, &hKey); RegSetValueEx(hKey, valuename, 0, REG_SZ, (CONST BYTE *) &content, strlen(content)+1 ); RegCloseKey(hKey);}GetReg("Software\\MySoftWare","LogScreen");SetReg("Software\\MySoftWare","LogScreen" ,"TRUE"); HKEY hKey = NULL; DWORD dwBufLen = _MAX_PATH; DWORD dwType = REG_SZ; char szIP[32]; ::RegOpenKeyEx( HKEY_LOCAL_MACHINE, "SOFTWARE\\Comapny\\AppName", 0, KEY_QUERY_VALUE, &hKey ); ::RegQueryValueEx( hKey, "IP", NULL, &dwType, (LPBYTE)szIP, &dwBufLen);::RegCloseKey(hKey); 自己去看MSDN吧,里面有一些例子的,比这里好多了。 放在HKEY_CURRENT_USER,的SoftWare下比较合适。用(我实际做成功过的):DWORD dwRet; DWORD dwLength; HKEY hKey; if(ERROR_SUCCESS == RegCreateKeyEx (HKEY_CURRENT_USER,"SoftWare\\YourSpecAPP", 0L, NULL, REG_OPTION_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, &dwRet)){ AfxMessageBox("Create Succeeded!"); }就可以在注册表中加一个目录了! 我刚做完一个和注册表有关的程序,把里面的一部分按你的要求修改乐一下放在initdialog里应该好用,它会在注册表的HKEY_LOCAL_MACHINE主键的sotrware子键下键一个ip键,你试一下吧//从注册表里取出设置HKEY hKey;HKEY hkResult;LONG result;hKey=HKEY_LOCAL_MACHINE;CString SubKey = "SoftWare\\ip";result = RegOpenKeyEx(hKey,SubKey,0,KEY_ALL_ACCESS,&hkResult);if(result!=ERROR_SUCCESS){ result = RegCreateKey(hKey,SubKey,&hkResult); if(result != ERROR_SUCCESS) { MessageBox("程序初始化失败"); }//初始化注册表 else { char ip[256]; strcpy(ip,"..."); RegSetValueEx(hkResult,"ip",0,REG_SZ,(CONST BYTE*)ip,256); RegCloseKey(hkResult); }else{char i[256]; DWORD Type = REG_SZ,Size = 256;RegQueryValueEx(hkResult,"ip",0,&Type,(BYTE*)ip,&Size);RegCloseKey(hkResult);} 把CDC设置成全局变量时出现程序崩溃 vc写的程序添加皮肤后不能全屏 关于非模态对话框创建和销毁的一个疑问,求解答~ 这是怎么回事? 请问WINUSERAPI int WINAPI的问题 ◇◆◇ 我来散10分,第五个人进来后结贴 ◇◆◇ 求救:VC客户端不直接连接数据库的方法 htons()是什么东东?急用 CRecordset::Update()出现非法的属性/标识符 求助!!VC6.0无界面dll中如何使用VC2008写的OCX!!! 求教,我的程序错在哪儿了呢?我想了很长时间想不出来,请各位老师指教,不胜感谢! 为什么GetListCtrl()得到的对象为空
DWORD dwPosition;
char IPStr[] = "127.0.0.1";
::RegCreateKeyEx( HKEY_LOCAL_MACHINE,
"SOFTWARE\\company\\AppName",
0, "", 0, KEY_READ | KEY_WRITE,
NULL, &hKey, &dwPosition ); ::RegSetValueEx(hKey, "IP", 0, REG_SZ,
(LPBYTE) IPStr, strlen(IPStr)+1);
::RegCloseKey( hKey );
{
char* pszBuffer;
char szObject[256] = "";
DWORD dwBytes;
int i = 0;
int j = 0;
HKEY hKey;
char keyname[255];
sprintf(keyname,"%s",_keyname);
char valuename[255];
sprintf(valuename,"%s",_valuename);
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,keyname,0,KEY_ALL_ACCESS,&hKey) == ERROR_SUCCESS)
{
if (RegQueryValueEx( hKey,valuename,NULL, NULL, NULL,&dwBytes ) == ERROR_SUCCESS)
{
pszBuffer = (char *) HeapAlloc( GetProcessHeap(),HEAP_ZERO_MEMORY,dwBytes );
if (RegQueryValueEx( hKey,valuename,NULL, NULL,(LPBYTE)pszBuffer,&dwBytes ) == ERROR_SUCCESS)
{
RegCloseKey(hKey);
return pszBuffer;
}
}
RegCloseKey(hKey);
return "";
}
return "";
}void SetReg(char *_keyname, char *_valuename, char *_content)//save to the registry
{
char szObject[256] = "";
int i = 0;
int j = 0;
HKEY hKey;
char keyname[255];
sprintf(keyname,"%s",_keyname);
char valuename[255];
sprintf(valuename,"%s",_valuename);
char content[255];
sprintf(content,"%s",_content);
RegOpenKeyEx(HKEY_LOCAL_MACHINE,
keyname,
0,
KEY_SET_VALUE,
&hKey);
RegSetValueEx(hKey, valuename,
0,
REG_SZ,
(CONST BYTE *) &content,
strlen(content)+1 );
RegCloseKey(hKey);
}GetReg("Software\\MySoftWare","LogScreen");
SetReg("Software\\MySoftWare","LogScreen" ,"TRUE");
DWORD dwBufLen = _MAX_PATH;
DWORD dwType = REG_SZ;
char szIP[32]; ::RegOpenKeyEx( HKEY_LOCAL_MACHINE,
"SOFTWARE\\Comapny\\AppName",
0, KEY_QUERY_VALUE, &hKey ); ::RegQueryValueEx( hKey, "IP", NULL, &dwType,
(LPBYTE)szIP, &dwBufLen);
::RegCloseKey(hKey);
DWORD dwRet;
DWORD dwLength;
HKEY hKey;
if(ERROR_SUCCESS == RegCreateKeyEx (HKEY_CURRENT_USER,"SoftWare\\YourSpecAPP", 0L, NULL,
REG_OPTION_VOLATILE, KEY_ALL_ACCESS, NULL,
&hKey, &dwRet)){
AfxMessageBox("Create Succeeded!");
}
就可以在注册表中加一个目录了!
放在initdialog里应该好用,它会在注册表的HKEY_LOCAL_MACHINE主键的sotrware子键下键一个ip键,你试一下吧
//从注册表里取出设置
HKEY hKey;
HKEY hkResult;
LONG result;
hKey=HKEY_LOCAL_MACHINE;
CString SubKey = "SoftWare\\ip";
result = RegOpenKeyEx(hKey,SubKey,0,KEY_ALL_ACCESS,&hkResult);
if(result!=ERROR_SUCCESS)
{
result = RegCreateKey(hKey,SubKey,&hkResult);
if(result != ERROR_SUCCESS)
{
MessageBox("程序初始化失败");
}
//初始化注册表
else
{
char ip[256];
strcpy(ip,"...");
RegSetValueEx(hkResult,"ip",0,REG_SZ,(CONST BYTE*)ip,256);
RegCloseKey(hkResult);
}
else
{
char i[256];
DWORD Type = REG_SZ,Size = 256;
RegQueryValueEx(hkResult,"ip",0,&Type,(BYTE*)ip,&Size);
RegCloseKey(hkResult);
}