比如:
HKEY_CURRENT_USER\Console 下可能会有很多数值,而这些数值的个数和名称事先都不知道,怎么样才能把这些数据读取出来呢
谢谢
HKEY_CURRENT_USER\Console 下可能会有很多数值,而这些数值的个数和名称事先都不知道,怎么样才能把这些数据读取出来呢
谢谢
解决方案 »
- 关于视频采集卡的两个问题
- 读Delphi控件原码(如TCustomComboBox),有些看不懂. 大家有好的指点吗 一顶给分
- 关于用用VFP调用DELPHI动态连接库的问题
- 我在单元中定义个数组变量,报错呀,是什么原因?谢谢。
- pos length 函数的使用的问题....
- 同一个程序,如何判断只能打开一个!
- 為什麼圖片用流的形式導入數據庫再導出另存為文件時不清不楚
- 请问如何实现类似outlook风格的工具栏?
- dehpi project manager 中open 窗体时报错error creating form:identifier expected on line
- 收不收费的问题
- 请问怎么显示数据库中的图像字段?
- 02年毕业至今一事无成,郁闷散分
procedure GetValueNames(Strings: TStrings);
procedure xxxxx(KeyName)
var...begin定位主键的位置if Registry.HasSubKeys thenbeginRegistry.GetKeyNames(TString);for i:=0 to TString.Items.Count-1 doxxxxx(TString.Values[i])end;end;
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Registry, StdCtrls;type
TfrmMain = class(TForm)
ListBox1: TListBox;
Button1: TButton;
Edit1: TEdit;
Button2: TButton;
Button3: TButton;
Button4: TButton;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
m_registry: TRegistry;
public
{ Public declarations }
end;var
frmMain: TfrmMain;implementation{$R *.DFM}procedure TfrmMain.FormCreate(Sender: TObject);
begin
m_registry := TRegistry.Create;
end;procedure TfrmMain.FormDestroy(Sender: TObject);
begin
m_registry.Free;
end;procedure TfrmMain.Button1Click(Sender: TObject);
begin
// m_registry.GetValueNames(ListBox1.Items);
// if m_registry.HasSubKeys then
// begin
// ShowMessage('HAS');
// end
// else
// begin
// ShowMessage('NO');
// end;
//try
// Reg:=TRegistry.create;
// Reg.RootKey := HKEY_LOCAL_MACHINE;
// if reg.KeyExists('Software\database') then
// begin
// if Reg.OpenKey('\Software\database', True) then
// begin
// edit1.Text:=reg.ReadString('username');
// Reg.CloseKey;
// end;
// end else
// begin
// reg.CreateKey('Software\database');
// end;
// finally
// freeandnil(reg);
// end;
m_registry.RootKey := HKEY_CURRENT_USER;
if m_registry.KeyExists('Software\Cashier.cn\Test_GcReg') then
begin
if m_registry.OpenKey('Software\Cashier.cn\Test_GcReg', True) then
begin
Edit1.Text := m_registry.ReadString('Edit1');
m_registry.CloseKey;
end;
end
else
begin
m_registry.CreateKey('Software\Cashier.cn\Test_GcReg');
end;
end;procedure TfrmMain.Button2Click(Sender: TObject);
begin
// try
// Reg:=TRegistry.create;
// Reg.RootKey := HKEY_LOCAL_MACHINE;
// if Reg.OpenKey('\Software\database', True) then
// begin
// if reg.valueexists('username') then
// edit1.Text:=reg.ReadString('username')
// else edit1.text := '';
// Reg.CloseKey;
// end;
// finally
// freeandnil(reg);
// end;
m_registry.RootKey := HKEY_CURRENT_USER;
if m_registry.OpenKey('Software\Cashier.cn\Test_GcReg', True) then
begin
if m_registry.ValueExists('Edit2') then
begin
Edit1.Text := m_registry.ReadString('Edit2');
end
else
begin
Edit1.Text := '';
end;
m_registry.CloseKey;
end;
end;procedure TfrmMain.Button3Click(Sender: TObject);
begin
m_registry.RootKey := HKEY_CURRENT_USER;
if m_registry.OpenKey('Software\Cashier.cn\Test_GcReg', True) then
begin
m_registry.GetValueNames(ListBox1.Items);
// m_registry.CloseKey;
end;
end;procedure TfrmMain.Button4Click(Sender: TObject);
begin
if ListBox1.ItemIndex < 0 then Exit;
if m_registry.ValueExists(ListBox1.Items.Strings[ListBox1.ItemIndex]) then
begin
Edit1.Text := m_registry.ReadString(ListBox1.Items.Strings[ListBox1.ItemIndex]);
end
else
begin
Edit1.Text := '';
end;
end;end.
窗体上就一个Edit,一个List,四个Button!
KeyExists用于判断指定主键是否存在:
function KeyExists(const Key: string): Boolean;//返回值为True表示主键存在。HasSubKeys用于判断指定主键下是否有子键:function HasSubKeys: Boolean;
返回值为True表示主键下有子键。GetKeyNames用于获取子键名称:procedure GetKeyNames(Strings: TStrings);
Strings用于返回当前主键下各子键的名称。获取主键下的数据值名称:procedure GetvalueNames(Strings: TStrings)。
Strings用于返回当前主键下各数值名称。
micher_yan(ASP转Delphi)能不能多加些说明,最好有实例,GetKeyNames我也用过,但好是出错。
g961681(我好惨啊!)
你的答案好象不符合我的要求,那些数据全是未知的。