+ -
当前位置:首页 → 问答吧 → 关于读取注册表键值的一个问题

关于读取注册表键值的一个问题

时间:2011-12-17

来源:互联网

我想读取HKEY_CURRENT_USER,Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\下ProxyServer的键值
数据是REG_SZ类型,内容是59.57.15.71:80,但是我读取的结果是个53,我是菜鸟不懂,求各位指点迷津,谢谢了。

C/C++ code

HKEY hkey=HKEY_CURRENT_USER;
LPCSTR data_Set="Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\";
LONG res;
//DWORD datatype=REG_DWORD;
DWORD datatype2=REG_SZ;
DWORD dwValue = 1;
unsigned char vari[90];
DWORD ncbvari=20;   //数值名称缓冲区大小


::RegOpenKeyEx(hkey,
data_Set, 0,
KEY_WRITE|KEY_READ, &hkey);
res = ::RegQueryValueEx(hkey,"ProxyServer",0, &datatype2,vari,&ncbvari);
if(res==ERROR_SUCCESS)
MessageBox(NULL,"find!","提示",MB_OK);
else
MessageBox(NULL,"no ","提示",MB_OK);
String str;
str=*vari;
Edit3->Text=*vari;


RegCloseKey(hkey);


作者: ihaohang   发布时间: 2011-12-17

//---------------------------------------------------------------------------

#include <vcl.h>
//要包含此头文件
#include <registry.hpp>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(OpenDialog1->Execute()){
  Edit1->Text=OpenDialog1->FileName;
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
TRegistry *reg=new TRegistry;
try{
reg->RootKey=HKEY_CURRENT_USER;
if(!reg->OpenKey("\\Software\\Science\\File List",false)){
reg->CreateKey("\\Software\\Science\\File List");
reg->OpenKey("\\Software\\Science",true);
reg->WriteString("Ver","1.0");
reg->CloseKey();
reg->OpenKey("\\Software\\Science\\File List",true);
reg->WriteString("1","");
reg->WriteString("2","");
reg->WriteString("3","");
}
}
__finally{
reg->CloseKey();
delete reg;
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
TRegistry *reg=new TRegistry;
try{
reg->RootKey=HKEY_CURRENT_USER;
if(reg->OpenKey("\\Software\\Science\\File List",false)){
reg->WriteString("3",reg->ReadString("2"));
reg->WriteString("2",reg->ReadString("1"));
reg->WriteString("1",Edit1->Text);
  }else{
  MessageBox(Handle,"保存文件列表失败","错误",MB_OK|MB_ICONERROR);
  }
}
__finally{
reg->CloseKey();
delete reg;
FileList1Click(Sender);
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FileList1Click(TObject *Sender)
{
String TempStr;
TRegistry *reg=new TRegistry;
  try{
reg->RootKey=HKEY_CURRENT_USER;
if(reg->OpenKey("\\Software\\Science\\File List",false)){
TempStr=reg->ReadString("1");
if(TempStr!=""){
FileList1->Caption=TempStr+"(&1)";
FileList1->Visible=true;
  }else{
  FileList1->Visible=false;
}
TempStr=reg->ReadString("2");
if(TempStr!=""){
FileList2->Caption=TempStr+"(&2)";
FileList2->Visible=true;
  }else{
  FileList2->Visible=false;
}
TempStr=reg->ReadString("3");
if(TempStr!=""){
FileList3->Caption=TempStr+"(&3)";
FileList3->Visible=true;
  }else{
  FileList3->Visible=false;
  }
  }
}__finally{
reg->CloseKey();
delete reg;
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MainMenu1Change(TObject *Sender, TMenuItem *Source, bool Rebuild)
{
FileList1Click(Sender);
}
//---------------------------------------------------------------------------

作者: whypcgames   发布时间: 2011-12-17

用TRegistry 这个类读,很方便的。

作者: ksrsoft   发布时间: 2011-12-17

热门下载

更多