如何用Delphi访问注册表,然后把启动项显示出来? 如何用Delphi访问注册表,然后把启动项显示出来? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 本帖最后由 bdmh 于 2011-01-05 12:37:36 编辑 SOFTWARE\Microsoft\Windows\CurrentVersion\Run 是比较常见的启动键值还有一些其他的键值如 RunOnce 键 RunServicesOnce 键 WinLogon 键等。 主要还是在 服务这块。。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\这里应该是主力。。 uses Registry;procedure TForm1.Button1Click(Sender: TObject);const sKey_MACHINE: array[0..7] of string = ('SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Userinit', 'SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run', 'SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce', 'SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices', 'SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\Setup', 'SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce', 'SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx', 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run' ); sKey_USER: array[0..6] of string = ('Software\Microsoft\WindowsNT\CurrentVersion\Windows\load', 'Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run', 'Software\Microsoft\Windows\CurrentVersion\RunServicesOnce', 'Software\Microsoft\Windows\CurrentVersion\RunServices', 'Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup', 'Software\Microsoft\Windows\CurrentVersion\RunOnce', 'Software\Microsoft\Windows\CurrentVersion\Run' );var regTemp: TRegistry; slTemp, slResult: TStringList; iNum: Integer;begin //清空Memo mmoResult.Clear; slTemp := TStringList.Create; slResult := TStringList.Create; regTemp := TRegistry.Create; //循环查找启动项 regTemp.RootKey := HKEY_CURRENT_USER; for iNum := 0 to 6 do begin regTemp.OpenKey(sKey_USER[iNum], False); regTemp.GetValueNames(slTemp); slResult.AddStrings(slTemp); regTemp.CloseKey; end; //循环查找启动项 regTemp.RootKey := HKEY_LOCAL_MACHINE; for iNum := 0 to 7 do begin regTemp.OpenKey(sKey_MACHINE[iNum], False); regTemp.GetValueNames(slTemp); slResult.AddStrings(slTemp); regTemp.CloseKey; end; //在Memo控件显示结果 mmoResult.Lines.AddStrings(slResult); //释放regTemp regTemp.Free;end;Delphi7,WindowsXp下通过. 如何限制DELPHI程序运行次数? 什么原因呢? WGYKING(修罗是谁?!) 进来接分~ 关于socket错误(请各位帮帮忙) 如何把一个主菜单的一项作为popup菜单对象? 关于delphi help的问题 编译安装remobjects 源码版的时候提示 那位高手指点一下,我实在没法写下去了!!!!!!! 能否把动态生成的图片保存在一张IMAGE上 难道还要加代码? 记录数组的求助…… 关开汇编语言里寄存器的疑问
如 RunOnce 键 RunServicesOnce 键 WinLogon 键等。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
这里应该是主力。。
Registry;
procedure TForm1.Button1Click(Sender: TObject);
const
sKey_MACHINE: array[0..7] of string =
('SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Userinit',
'SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run',
'SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce',
'SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices',
'SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\Setup',
'SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce',
'SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx',
'SOFTWARE\Microsoft\Windows\CurrentVersion\Run'
); sKey_USER: array[0..6] of string =
('Software\Microsoft\WindowsNT\CurrentVersion\Windows\load',
'Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run',
'Software\Microsoft\Windows\CurrentVersion\RunServicesOnce',
'Software\Microsoft\Windows\CurrentVersion\RunServices',
'Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup',
'Software\Microsoft\Windows\CurrentVersion\RunOnce',
'Software\Microsoft\Windows\CurrentVersion\Run'
);var
regTemp: TRegistry;
slTemp, slResult: TStringList;
iNum: Integer;
begin
//清空Memo
mmoResult.Clear;
slTemp := TStringList.Create;
slResult := TStringList.Create;
regTemp := TRegistry.Create;
//循环查找启动项
regTemp.RootKey := HKEY_CURRENT_USER;
for iNum := 0 to 6 do
begin
regTemp.OpenKey(sKey_USER[iNum], False);
regTemp.GetValueNames(slTemp);
slResult.AddStrings(slTemp);
regTemp.CloseKey;
end;
//循环查找启动项
regTemp.RootKey := HKEY_LOCAL_MACHINE;
for iNum := 0 to 7 do
begin
regTemp.OpenKey(sKey_MACHINE[iNum], False);
regTemp.GetValueNames(slTemp);
slResult.AddStrings(slTemp);
regTemp.CloseKey;
end; //在Memo控件显示结果
mmoResult.Lines.AddStrings(slResult);
//释放regTemp
regTemp.Free;
end;
Delphi7,WindowsXp下通过.