请问,如何在Delphi6中编写启动行为?

时间:2017-09-30 08:33:04

标签: delphi

我有一个应用程序,我在win + startup文件夹中放了一个快捷方式,一切正常。

现在我希望通过编码来改变这种方法,因此我使用了本文底部列出的代码。

代码在HKLM中输入一个键,但系统启动时出现窗口错误:

  

模块' ap1.exe'中地址004815EB的访问冲突。读取地址00000000。

此错误在3台不同的计算机上类似,运行win xp或win 7。

procedure SetAutoStart(AppName, AppTitle: string; bRegister: Boolean);
const RegKey = '\Software\Microsoft\Windows\CurrentVersion\Run'; // Run or 
RunOnce
var Registry: TRegistry;
begin
  Registry := TRegistry.Create;
  try Registry.RootKey := HKEY_LOCAL_MACHINE;
      if Registry.OpenKey(RegKey, False)
         then begin
                if bRegister = False then Registry.DeleteValue(AppTitle)
                                     else Registry.WriteString(AppTitle, 

AppName);
              end;
  finally Registry.Free;
  end;
end;

1 个答案:

答案 0 :(得分:1)

启动时执行的程序引发错误。它与问题中的代码没有任何关系。您可以通过使用注册表编辑器检查注册表项来验证问题中的代码是否按预期运行。

您需要调试启动时正在执行的程序。您无法附加交互式调试器。相反,您将需要使用跟踪调试。