delphi修改注册表_delphi exe 修改
1.delphi中如何向注册表中写入二进制数据
2.如何在Delphi中对注册表中的键值项判断存在与否
3.DELPHi:删除注册表项及子项问题
4.Delphi语言读取系统注册表数据的方法
问题一:怎样编写注册表导入脚本文件 比如我要快速的修改一台机子的机器名,我做的一个注册表文件如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\puterName]
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\puterName\puterName]
puterName=205
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\puterName\ActiveputerName]
puterName=205
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters]
NV Hostname=205
Hostname=205
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\puterName\puterName]
puterName=205
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Tcpip\Parameters]
NV Hostname=205
Hostname=205
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\puterName]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\puterName\puterName]
puterName=205
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\puterName\ActiveputerName]
puterName=205
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
NV Hostname=205
Hostname=205
[HKEY_USERS\S-1-5......>>
问题二:如何把一个文件写入注册表 你说的是注册表导入吗?
可以自己新建一个记事本文件,把需要的内容写入
例如这样的:
Windows Registry Editor Version 5.00
[HKEY_USERS\S-1-5-18\AppEvents\EventLabels\.Default]
@=默认响声
[email protected] ,-5824
然后保存
把后缀名为TXT改为 REG 就可以 然后双击就导入了
问题三:注册表文件编写格式是什么? 通过修改注册表我们可以实现一些特殊的功能,但是注册表又是十分脆弱的,一个不小心就会出现错误。那么我们怎么样来修改注册表呢?我总结为以下几种方法:
1.软件修改(安全)
通过一些专门的修改工具来修改注册表,比如:MagicSet、TweakUI、WinHacker等等。其实控制面板就是一个这样的工具,只不过功能简单一些。
2.间接修改(比较安全)
将要修改的写入一个.reg文件中,然后导入注册表中。.reg文件的基本格式为:
REGEDIT4[HKEY_LOCAL_MACHINE\Software\Super Rabbit\MagicSet]
@=Super Rabbit Magic Set For Windows 98 V2.92
a=dword:00000001
b=hex:02,05,00,00
……
[HKEY_LOCAL_MACHINE\Software\SCC\QuickViewer]
……
第一行为“REGEDIT4”,必须大写。
第二行为空行。
第三行使用[]括起子键分支,其中HKEY_LOCAL_MACHINE\Software\Super Rabbit\MagicSet就是一个子键分支。
第四、五、六行是该子键下的设置数据。其中@表示注册表编辑器右窗格中的默认键。
以下类似。
这样做的好处是可以避免错误的写入或删除等操作,但是要求用户了解注册表的内部结构和.reg文件的格式。
3.直接修改(最不安全,但最直接有效)
就是通过注册表编辑器直接的来修改注册表的键值数据项,这样做会避免在注册表中留下垃圾(虽然都很小,但越来越多会拖慢系统速度),但是要求用户有一定的注册表知识,熟悉注册表内部结构而且一定要小心谨慎。
注册表应用实例
1.自动刷新
每次在窗口添加一个文件夹或删除一个对象后,须要按键对窗口进行重新刷新,很麻烦。通过修改注册表可以达到自动刷新的目的。点击HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTRO LSET\CONTROL\UPDATE,修改 UPDATE MODE值,由1改为0。
2.修改系统版权信息
点击HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\DEVEOPER\SETUP,在其右窗口中保存着安装 Windows98时产生的所有版权信息,用鼠标右键点击这些串值键可以随便修改,这样不须重新安装Windows 98就可修改系统原有的版权信息。
3.加快Windows 98启动速度
Windows98在启动时能自动加载一些程序运行,有的程序放在开始菜单中的启动组里,一些重要的、不须用户干涉的系统程序,则存放在注册表中。如果想加快Windows98的启动速度,可以适当地删除这些程序。在启动组中的程序可以通过任务栏很方便地删除。如果程序不在启动组中,则须要通过修改注册表来删除。
点击HKEY_LOCAL_MACHINE\MICROSOFT\WINDOW......>>
问题四:如何写注册表谢谢就是写.reg文件 如何写注册表文件
.reg文件的标准格式如下:
REGEDIT4
[路径] (注意用大小写)
键名=键值 (针对字符串型键值)
键名=hex:键值 (针对二进制型键值)
键名=dword:键值 (针对DWORD键值)
括号里面的内容为本人的注释,写文件的时候就不需要那些小括号了,其他上面所列的都必须包括。注意引号输入时不能用中文输入的引号,必须用英文的引号,否则会出错。
那么,怎么写.reg文件呢?我们需要一个文本编辑器,用windows的记事本就可以了。单击鼠标右键,选择新建文本文档,然后在生成的文本文件里输入上面规格的内容就可以了,最后,选择另存为,输入你想要的文件名+.reg保存即可。比如你要生成test.reg,输入test.reg保存即可,你可以看到生成了一个带图标的test.reg.双击运行这个test.reg文件就能相应的修改注册表了,系统会提示“是否导入注册表”之类的信息,确定就可以了。OK,我们可以手动写注册表了,是不是感觉很酷?
先别急,我们来看看一个标准范例,这是从注册表里面导出来的,大家慢慢学习,跟着模仿一下就能写出自己的.reg文件了。
REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
NoRun=dword:00000000
NoRecentDocsMenu=hex:01,00,00,00
NoForitesMenu=dword:00000000
user=sundrink
大家可以看到,dword是16进制,hex是二进制,字符串则可以直接赋值。只要将上面的内容复制保存到文本文档里,然后另存为你想要的.reg文件运行就可以了。呵呵,原来也不是很难嘛,耐心一点就可以了。当然,你要模仿,要自己动手写.reg文件,用记事本就可以了。
说多两句,为什么要手写注册表?因为有时候我们会碰到一台锁定regedit的机子,有什么办法解开呢?呵呵,如果你会手写注册表文件的话,那很简单了......大家发挥想象吧!用不了很长时间的。
问题五:编写TXT的注册表处理文件 你导出一个键值,就能看到reg文件的内容格式,照搬就行,reg文件就是txt文件,编写完后,把txt扩展名手动改成reg就可以了
问题六:用.reg文件更改注册表值如何编写? Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]
InstallDate=dword:4fdd429a
问题七:如何将程序写入注册表?(写入格式详解) 详细说来实在太长。简单点的来一个~如何使用注册表 windows的注册表(registry)实质上是一个庞大的数据库,它存储这下面这些内容:软、硬件的有关配置和状态信息,应用程序和管理器外壳的初始条件、首选项和卸载数据;计算机的整个系统的设置和各种许可,文件扩展名与应用程序的关联, 硬件的描述、状态和属性;计算机性能纪录和底层的系统状态信息,以及各类其他数据。 注册表的结构是: windows为我们提供了一个注册表编辑器(regedit.exe)的工具,它可以用来查看和维护注册表。由图我们可以看到,注册表编辑器与管理器的界面相似。它有六个分支(有的是五个): hkey-classes-root 文件扩展名与应用的关联及ole信息 hkey-current-user 当前登录用户控制面板选项和桌面等的设置,以及映射的网络驱动器 hkey-local-machine 计算机硬件与应用程序信息 hkey-users 所有登录用户的信息 hkey-current-config 计算机硬件配置信息 hkey-dyn-data 即插即用和系统性能的动态信息 注册表修改方法有: 1.软件修改(安全) 通过一些专门的修改工具来修改注册表,比如:magicset、tweakui、winhacker等等。其实控制面板就是一个这样的工具,只不过功能简单一些。 2.间接修改(比较安全) 将要修改的写入一个.reg文件中,然后导入注册表中。这样做的好处是可以避免错误的写入或删除等操作,但是要求用户了解注册表的内部结构和.reg文件的格式。 3.直接修改(最不安全,但最直接有效) 就是通过注册表编辑器直接的来修改注册表的键值数据项,,但是要求用户有一定的注册表知识,熟悉注册表内部结构而且一定要小心谨慎,否则会把系统弄瘫。 使用方法大致是: (1)修改键值:开始―运行-输入 regedit --确定,打开注册表编辑器,在左窗格选定你要修改的子键,在右窗格打到要修改的键值项,右击该键值项,按要求修改,修改完毕。 例:以加快开关机修改“HKEY-LOCAL-MACHINE”-“Stem”“CurrentControlSet”-“Control”-将字符串“WaitToKillServceTimeout” 数值数据20000修改为1000。 开始―运行―输入“Regedit”―在打开的注册表编器中后步向下打到“Control”左击打开右窗格,在右窗格打到“WaitToKillServceTimeout”双击打开“编辑字符串”对话框,在“数值数据”框中输入要修改为的数据数值“1000”―确定。 (2)新建子键和键值:右击父键,选“新建→项”,在打开的“新建#1“中输入子键名,确定,右击新建的子键,在右窗格添加新键值项和键值。 例:新建字符串,新建“HKEY-LOCAL-MACHINE”-“Stem”“CurrentControlSet”-“Control”-“HungAppTimeout”的数值数据为“200”。 开始―运行―输入“Regedit”―在打开的注册表编器中后步向下找到“Control”左击打开右窗格,右击右窗格空白处―新建―字符串―在名称中输入名称“HungAppTimeout”,双击该名称打开“编辑字符串”对话框,在“数值数据”框中输入数据数值“200”―确定。 (3)删除子键和键值:开始―运行-输入 regedit --确定,打开注册表编辑器,在左窗格右击你要删除的子键,选“删除”;在右窗格右击你要删除的键值项,选“删除”。 注意,为保险起见,修也注册表前要......>>
问题八:注册表文件的书写格式是什么? - 注释
REGEDIT4 大写顶格
空一行
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
↑注册表的位置,用 [ 和 ] 扩起来
MyTask=C:\Windows\System32\taskmgr.exe
↑新建一个键值,叫MyTask.键值的数据是一个程序的路径.
REGEDIT4
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
MyTask=C:\Windows\System32\taskmgr.exe
这个保存到 .reg 文件,就是一个把任务管理器添加到注册表中 开机自动启动的注册表文件了!
要学习 注册表文件 的话.
可以找一个要学习的注册表位置.
再对它 右键 - 导出
用记事本打开研究!
问题九:怎样将文件路径写入注册表中,越详细越好. 比如:
一个文件夹下面有多个文件,
想将其中的某一个文件的路径信息写入注册表中,且当文件路经改变时,可以重新写入路径信息。
delphi帮助信息中的例子:
procedure TForm1.WMEndSession(var Message: TWMEndSession);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CURRENT_USER;
if Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\RunOnce', True) then
begin
Reg.WriteString('MyApp','' + ParamStr(0) + '');
Reg.CloseKey;
end;
finally
Reg.Free;
inherited;
end;
end;
上面只能实现本应用程序所在的路径(包括程序名)。
能否实现与本程序在同以目录下的其他文件的路径?
或者是他们的上一层路径?
delphi中如何向注册表中写入二进制数据
设输入完整注册表路径为 HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\Acrobat Reader\9.0\InstallPath
则下图中PRootKey变量值为 HKEY_LOCAL_MACHINE
PKey变量值为 SOFTWARE\Adobe\Acrobat Reader\9.0\InstallPath
具体怎么截取你自己写
下面供参考
var
Reg: TRegistry;
begin
Reg := TRegistry.Create ;
Reg.RootKey := PRootKey;
try
if Reg.OpenKeyReadOnly(PKey) then
ShowMessage('路径有效')
else
ShowMessage('路径无效')
finally
Reg.CloseKey;
Reg.Free ;
end;
end;
如何在Delphi中对注册表中的键值项判断存在与否
向注册表关键字中写入相关的数据值
在Tregistry类中提供了一系列的Write方法用来写入与当前关键字相关的数据值。常用方法的原型定义如下:
procedure
WriteString(const
Name,
Value
:
string);
procedure
WriteInteger(const
Name
:
string
Value
:
Integer);
procedure
WriteFloat(const
Name
:
string
Value
:
Double);
procedure
WriteTime(const
Name
:
string
Value
:
TDateTime);
procedure
WriteBool(const
Name
:
string
Value
:
Boolean);
DELPHi:删除注册表项及子项问题
var
Reg:TRegistry;
begin
result:=false;
try
Reg:=TRegistry(Self);
Reg.rootkey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey('\SOFTWARE\Passwd');
if ValueExitst('pwdl') then
Result:=true;
finally
end;
end
Delphi语言读取系统注册表数据的方法
// 删除键
Registry.Deletekey('pc_client');
if registry.deletekey('pc_client') then
showmessage('ok');
其中Registry.Deletekey('pc_client')相当于执行了两次,到你IF 语句里执行结果肯定是FALSE,就肯定不出提示对话框了,把IF语句上面那句删除吧
还有就是ROOTKEY指定,不知道是不是你没贴出来
KEYSTR:='\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupregKey\pc_client';
Registry.RootKey := HKEY_LOCAL_MACHINE;
if not Registry.OpenKey(KEYSTR,false) then Exit;
try
// 删除键
if registry.deletekey(KEYSTR) then
showmessage('ok');
finally
Registry.CloseKey;
end;
finally
Registry.Free;
end;
你的语句里少个\ 你还少个not
aaa\bbb", "ccc", "ddd", "eee" 这个应该是作为一个字符整体存到一个键值下面的吧,你要先取得他是存到具体哪个根键下了。你取到这个根键值后对这个整体作字符串分离就能出来eee了。没用过VB,但存储和读取注册表,哪种语言都差不多,都是对API的调用。
//写注册表
procedure TForm1.Button1Click(Sender: TObject);
var
reg : TRegistry;
begin
try
reg := TRegistry.Create;
reg.RootKey := HKEY_CURRENT_USER;
if reg.OpenKey('\SOFTWARE\'+Application.Title,true) then
begin
reg.WriteString('test','看外观');
end;
finally
reg.CloseKey;
reg.Free;
end;
end;
//读注册表
procedure TForm1.Button2Click(Sender: TObject);
var
reg : TRegistry;
begin
try
reg := TRegistry.Create;
reg.RootKey := HKEY_CURRENT_USER;
if reg.OpenKey('\SOFTWARE\'+Application.Title,true) then
begin
showmessage(reg.ReadString('test'));
end;
finally
reg.CloseKey;
reg.Free;
end;
end;
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。