加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

inno-setup – Inno Setup,APP启动当Windows启动时

发布时间:2020-12-15 10:12:30 所属栏目:大数据 来源:网络整理
导读:对于Inno设置, 我想在Windows启动时为MyAPP自动启动创建一个复选框Task. 我的代码如下: 并且,如何编写以下代码 – DO_Set_AutoStart_WhenWindowsStart() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [Tasks]Name: "StartMenuEntry" ; Description: "Start my app
对于Inno设置,
我想在Windows启动时为MyAPP自动启动创建一个复选框Task.
我的代码如下:

并且,如何编写以下代码 – DO_Set_AutoStart_WhenWindowsStart()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

[Tasks]
Name: "StartMenuEntry" ; Description: "Start my app when Windows starts" ; GroupDescription: "Windows Startup"; MinVersion: 4,4;

[code]

//Do Additional Task - Auto Start when Windows Start 

function NextButtonClick(CurPageID: Integer): Boolean;
var
  Index: Integer;
begin
  Result := True;
  if CurPageID = wpSelectTasks then
  begin
    Index := WizardForm.TasksList.Items.IndexOf('Start my app when Windows starts');
    if Index <> -1 then
    begin
      if WizardForm.TasksList.Checked[Index] then
        MsgBox('First task has been checked.',mbInformation,MB_OK)
        DO_Set_AutoStart_WhenWindowsStart();
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      else
        MsgBox('First task has NOT been checked.',MB_OK);
    end;
  end;
end;

解决方法

您无需使用[code]部分添加自动启动应用程序.

例如,有不同的方法可以实现这一目标

[icons]
Name: "{userstartup}My Program"; Filename: "{app}MyProg.exe"; Tasks:StartMenuEntry;
Name: "{commonstartup}My Program"; Filename: "{app}MyProg.exe"; Tasks:StartMenuEntry;

{userstartup}和{commonstartup}之间的区别(如果不是很明显)是{userstartup}影响当前用户的启动菜单条目,{commonstartup}影响目标机器的所有用户.

编辑

您还可以使用注册表来启动应用程序.我添加这个是因为在评论中提到的OP所描述的方法在Windows 8上不起作用(因为缺少开始菜单,我忘了).我手边没有Windows 8进行测试,所以由你来测试这是否适用于Windows 8.

Run keys in the registry自WinXP以来就存在,因此您可以配置窗口以从安装程序自动运行程序,添加如下内容:

[Registry]
;current user only
Root: HKCU; Subkey: "SoftwareMicrosoftWindowsCurrentVersionRun"; ValueType: string; ValueName: "MyProgram"; ValueData: "{app}MyProg.exe"; Tasks:AutoRunRegistry;

;any user
Root: HKLM; Subkey: "SoftwareMicrosoftWindowsCurrentVersionRun"; ValueType: string; ValueName: "MyProgram"; ValueData: "{app}MyProg.exe"; Tasks:AutoRunRegistry;

不要错过我也将示例中的Tasks参数更改为AutoRunRegistry.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读