急急!!!!请问各位高手,在DELHPI5怎样取98注册表中的值???? delphi下有例子,你认真看一下 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 delphi 中有一个控件可以实现的 to各位高手:能具体点吗?能把代码贴出来吗本人学DELPHI没多久??? 先在uses后面加入Registry然后:procedure TForm1.Button1Click(Sender: TObject);ConstFPath = '\Software\Microsoft\Office\8.0\Word\InstallRoot';FKey = 'Path';FMyPath = '\Software\MyPath';FMyKey = 'MyString';VarReg : TRegistry;beginReg := TRegistry.Create;tryReg.RootKey := HKEY_LOCAL_MACHINE;//要操作的主键If Reg.OpenKey(FPath, False) thenShowMessage(Reg.ReadString(FKey)); // 读出的 WinWord 的路径就显示出来了。Reg.CreateKey(FMyPath); // 创建我们的主键Reg.OpenKey(FMyPath, True); // 打开我们自己的主键中Reg.WriteString(FMyKey, 'Welcome Edit Reg');// 写入字符串键值。finallyReg.Free; // 用 Try..Finally 结构确保 REG 变量能够释放。end;end; (*例如我想取注册表中:hkey_local_machine下的software下的oracle下的homeo中的oracle_home中的值,在delphi5程序中怎么实现呢?请高手给以解决.解决马上给分!!!*)Uses Registryvar Reg:TRegistry; Str:String;begintry Reg:=TRegistry.Create; Reg.RootKey:=HKEY_LOCAL_MACHINE; Reg.OpenKey('software\oracle\home',True); //True代表如果目录不存在,则自动创建;False不创建); Str:= Reg.ReadString('oracle_home'); //如果oracle_home是Binary类型值,则调用Reg.ReadBinary; //如果oracle_home是Integer类型值,则调用Reg.ReadInteger;finally Reg.Free;end;end; 下面是一个自动配置ODBC及BDE的实例,怎样找到你所要的注册表中的值应该不用具体再说明了吧procedure Tfrmmain.BitBtn1Click(Sender: TObject);var MyList: TStringList; registerTemp : TRegistry; //bData : array[ 0..0 ] of byte;begin registerTemp := TRegistry.Create; //建立一个Registry实例 with registerTemp do begin RootKey:=HKEY_USERS;//设置根键值为HKEY_USERS //找到Software\ODBC\ODBC.INI\ODBC Data Sources if OpenKey('.DEFAULT\Software\ODBC\ODBC.INI\ODBC Data Sources',True) then begin //注册一个DSN名称 WriteString( ''+edit1.text+'',''+combobox1.text+'' ); end else begin//创建键值失败 memo1.lines.add('增加ODBC数据源失败'); exit; end; CloseKey; //找到或创建Software\ODBC\ODBC.INI\MyAccess,写入DSN配置信息 if OpenKey('.DEFAULT\Software\ODBC\ODBC.INI\'+edit1.text+'',True) then begin //WriteString( 'DBQ', 'C:\inetpub\wwwroot\test.mdb' );//数据库目录 WriteString( 'Description', ''+Edit2.text+'' );//数据源描述 WriteString( 'Driver', 'C:\Windows\SYSTEM\sqlsrv32.dll' );//驱动程序DLL文件 //WriteInteger( 'DriverId', 25 );//驱动程序标识 //WriteString( 'FIL', 'Ms Access;' );//Filter依据 //WriteInteger( 'SafeTransaction', 0 );//支持的事务操作数目 WriteString( 'Server', ''+EDit3.Text+'' );//服务器名称 //WriteString( 'Laster', ''+EDit5.text+'' );//用户名称 // bData[0] := 0; // WriteBinaryData( 'Exclusive', bData, 1 );//非独占方式 //WriteBinaryData( 'ReadOnly', bData, 1 );//非只读方式 end else//创建键值失败 begin memo1.lines.add('增加ODBC数据源失败'); exit; end; CloseKey; //找到或创建Software\ODBC\ODBC.INI\MyAccess\Engines\Jet //写入DSN数据库引擎配置信息 {if OpenKey('Software\ODBC\ODBC.INI\''%'+Edit1.text+'%''\Engines\Jet',True) then begin WriteString( 'ImplicitCommitSync', 'Yes' ); WriteInteger( 'MaxBufferSize', 512 );//缓冲区大小 WriteInteger( 'PageTimeout', 10 );//页超时 WriteInteger( 'Threads', 3 );//支持的线程数目 WriteString( 'UserCommitSync', 'Yes' ); end else//创建键值失败 begin memo1.lines.add('增加ODBC数据源失败'); exit; end;} CloseKey; memo1.lines.add('增加新ODBC数据源成功!'); Free; end;//end with MyList := TStringList.Create; try with MyList do begin add('database name='+Edit1.text+''); add('SQLQRYMODE=SERVER'); add('ODBC DSN='+Edit1.Text+''); //Add('SERVER NAME=IB_SERVER:/PATH/DATABASE.GDB'); //Add('USER NAME=MYNAME'); end; Session.AddAlias(''+edit1.text+'', 'SQL Server', MyList); Session.SaveConfigFile; memo1.Lines.Add('BDE配置成功!'); MyList.Free; except memo1.Lines.Add('错误!'+#13+'数据库别名已存在!'); MyList.Free; end; bitbtn1.Enabled:=false;end;满意吗?加分吧 toJonHua(玉龙) :你这里的edit(1-5)及combobox1具体是指什么呢?combobox1中是不是指数据驱动程序,那它里面的这些驱程序项怎么加到 combobox1中去呢?还有:Session.AddAlias(''+edit1.text+'', 'SQL Server', MyList);你这里是不是配置sql server数据库存啊!又要麻烦你啦!明白马上给分! toJonHua(玉龙) :怎么没消息了。 你给我一个Email地址,我将程序发给你吧,自己去看好吗? 单据编号生成,给个例子 那位大哥能够看看关于这个函数该如何调用这个 DLL里的函数!急!! 发布一个很好的电子书站地址 关于控件丢失的问题! 新手求delphi+MSSQLSERVER的范例! 使用CORBA 技术编写程序的运行错,没有发现orbpas50.dll dbgrid中内容打印 一个插入SQL+控件插入的问题? ClientSocket的type属性的2个值是什么意思?有什么区别? 想用DELPHI编写一个打开网页,同时可将网页另存的程序 delphi中能否实现鼠标取词的功能? 为什么access数据库设了密码,用delphi带密码连接时打不开?
能具体点吗?能把代码贴出来吗本人学DELPHI没多久???
procedure TForm1.Button1Click(Sender: TObject);
Const
FPath = '\Software\Microsoft\Office\8.0\Word\InstallRoot';
FKey = 'Path';
FMyPath = '\Software\MyPath';
FMyKey = 'MyString';
Var
Reg : TRegistry;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_LOCAL_MACHINE;//要操作的主键
If Reg.OpenKey(FPath, False) then
ShowMessage(Reg.ReadString(FKey)); // 读出的 WinWord 的路径就显示出来了。
Reg.CreateKey(FMyPath); // 创建我们的主键
Reg.OpenKey(FMyPath, True); // 打开我们自己的主键中
Reg.WriteString(FMyKey, 'Welcome Edit Reg');// 写入字符串键值。
finally
Reg.Free; // 用 Try..Finally 结构确保 REG 变量能够释放。end;
end;
Uses Registry
var
Reg:TRegistry;
Str:String;
begin
try
Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey('software\oracle\home',True);
//True代表如果目录不存在,则自动创建;False不创建);
Str:= Reg.ReadString('oracle_home');
//如果oracle_home是Binary类型值,则调用Reg.ReadBinary;
//如果oracle_home是Integer类型值,则调用Reg.ReadInteger;
finally
Reg.Free;
end;
end;
procedure Tfrmmain.BitBtn1Click(Sender: TObject);
var
MyList: TStringList;
registerTemp : TRegistry;
//bData : array[ 0..0 ] of byte;
begin
registerTemp := TRegistry.Create; //建立一个Registry实例
with registerTemp do
begin
RootKey:=HKEY_USERS;//设置根键值为HKEY_USERS //找到Software\ODBC\ODBC.INI\ODBC Data Sources
if OpenKey('.DEFAULT\Software\ODBC\ODBC.INI\ODBC Data Sources',True) then
begin //注册一个DSN名称
WriteString( ''+edit1.text+'',''+combobox1.text+'' );
end else
begin//创建键值失败
memo1.lines.add('增加ODBC数据源失败');
exit;
end;
CloseKey; //找到或创建Software\ODBC\ODBC.INI\MyAccess,写入DSN配置信息
if OpenKey('.DEFAULT\Software\ODBC\ODBC.INI\'+edit1.text+'',True) then
begin
//WriteString( 'DBQ', 'C:\inetpub\wwwroot\test.mdb' );//数据库目录
WriteString( 'Description', ''+Edit2.text+'' );//数据源描述
WriteString( 'Driver', 'C:\Windows\SYSTEM\sqlsrv32.dll' );//驱动程序DLL文件
//WriteInteger( 'DriverId', 25 );//驱动程序标识
//WriteString( 'FIL', 'Ms Access;' );//Filter依据
//WriteInteger( 'SafeTransaction', 0 );//支持的事务操作数目
WriteString( 'Server', ''+EDit3.Text+'' );//服务器名称
//WriteString( 'Laster', ''+EDit5.text+'' );//用户名称
// bData[0] := 0;
// WriteBinaryData( 'Exclusive', bData, 1 );//非独占方式
//WriteBinaryData( 'ReadOnly', bData, 1 );//非只读方式
end
else//创建键值失败
begin
memo1.lines.add('增加ODBC数据源失败');
exit;
end;
CloseKey; //找到或创建Software\ODBC\ODBC.INI\MyAccess\Engines\Jet
//写入DSN数据库引擎配置信息
{if OpenKey('Software\ODBC\ODBC.INI\''%'+Edit1.text+'%''\Engines\Jet',True) then
begin
WriteString( 'ImplicitCommitSync', 'Yes' );
WriteInteger( 'MaxBufferSize', 512 );//缓冲区大小
WriteInteger( 'PageTimeout', 10 );//页超时
WriteInteger( 'Threads', 3 );//支持的线程数目
WriteString( 'UserCommitSync', 'Yes' );
end
else//创建键值失败
begin
memo1.lines.add('增加ODBC数据源失败');
exit;
end;}
CloseKey;
memo1.lines.add('增加新ODBC数据源成功!');
Free;
end;//end with
MyList := TStringList.Create;
try
with MyList do
begin
add('database name='+Edit1.text+'');
add('SQLQRYMODE=SERVER');
add('ODBC DSN='+Edit1.Text+'');
//Add('SERVER NAME=IB_SERVER:/PATH/DATABASE.GDB');
//Add('USER NAME=MYNAME');
end;
Session.AddAlias(''+edit1.text+'', 'SQL Server', MyList);
Session.SaveConfigFile;
memo1.Lines.Add('BDE配置成功!');
MyList.Free;
except
memo1.Lines.Add('错误!'+#13+'数据库别名已存在!');
MyList.Free;
end;
bitbtn1.Enabled:=false;
end;满意吗?加分吧
你这里的edit(1-5)及combobox1具体是指什么呢?combobox1中是不是指数据驱动程序,那它里面的这些驱程序项怎么加到 combobox1中去呢?还有:
Session.AddAlias(''+edit1.text+'', 'SQL Server', MyList);你这里是不是配置sql server数据库存啊!又要麻烦你啦!明白马上给分!
怎么没消息了。