Delphi-注册表启动

Delphi-注册表启动,delphi,Delphi,如何让我的程序编辑注册表,以便在计算机启动时启动? 使用 查看注册表中的以下位置: HKLM\Software\Microsoft\Windows\CurrentVersion\Run 您可以使用TRegistry在此处添加条目。查看注册表中的以下位置: HKLM\Software\Microsoft\Windows\CurrentVersion\Run 您可以使用TRegistry在此处添加条目。请尝试使用此代码在下次启动时启动应用程序 procedure RunOnStartupHK

如何让我的程序编辑注册表,以便在计算机启动时启动? 使用


查看注册表中的以下位置:

HKLM\Software\Microsoft\Windows\CurrentVersion\Run


您可以使用TRegistry在此处添加条目。

查看注册表中的以下位置:

HKLM\Software\Microsoft\Windows\CurrentVersion\Run


您可以使用TRegistry在此处添加条目。

请尝试使用此代码在下次启动时启动应用程序

    procedure RunOnStartupHKCU(const sCmdLine: string;) ;
       var
       sKey              : string;
       Section           : string;
       ApplicationTitle  : string;
       begin
        ApplicationTitle:='myApplication';
        sKey := 'Once'
        Section := 'Software\Microsoft\Windows\CurrentVersion\Run' + sKey + #0;

       with TRegIniFile.Create('') do
         try
           RootKey := HKEY_CURRENT_USER;
           WriteString(Section, ApplicationTitle, sCmdLine) ;
         finally
         Free;
        end;
       end;
要调用它,请使用此

     sAppNam:=Application.ExeName;
     RunOnStartupHKCU(sAppNam) ;

在下一次启动时,请尝试使用此代码启动应用程序

    procedure RunOnStartupHKCU(const sCmdLine: string;) ;
       var
       sKey              : string;
       Section           : string;
       ApplicationTitle  : string;
       begin
        ApplicationTitle:='myApplication';
        sKey := 'Once'
        Section := 'Software\Microsoft\Windows\CurrentVersion\Run' + sKey + #0;

       with TRegIniFile.Create('') do
         try
           RootKey := HKEY_CURRENT_USER;
           WriteString(Section, ApplicationTitle, sCmdLine) ;
         finally
         Free;
        end;
       end;
要调用它,请使用此

     sAppNam:=Application.ExeName;
     RunOnStartupHKCU(sAppNam) ;

非常感谢。如果可以的话,我会让+1 you:d来避免下一篇文章,最好用HKCU来代替。这取决于你想让它运行一个(HKCU)还是所有(HKLM)据我所知,HKLM将让此计算机上的所有用户启动此程序,而HKCU将只让当前活动用户启动此程序,而@user539484意味着您的程序通常没有对HKLM的写入权限。因此,您需要获得对HKLM的写入权限,或者在HKCU注册表项下进行写入。但是,在这种情况下,您的程序只会在写入注册表项时登录的用户登录时启动。所有这些的底线是,这样的更改最好在安装程序运行时完成,因为您可以合理地期望在运行时拥有对HKLM的写访问权限。谢谢。如果可以的话,我会让+1 you:d来避免下一篇文章,最好用HKCU来代替。这取决于你想让它运行一个(HKCU)还是所有(HKLM)据我所知,HKLM将让此计算机上的所有用户启动此程序,而HKCU将只让当前活动用户启动此程序,而@user539484意味着您的程序通常没有对HKLM的写入权限。因此,您需要获得对HKLM的写入权限,或者在HKCU注册表项下进行写入。但是,在这种情况下,您的程序只会在写入注册表项时登录的用户登录时启动。所有这些的底线是,这样的更改最好在安装程序运行时进行,因为您可以合理地期望在运行时具有对HKLM的写访问权限。