对于 Inno 设置,
我想为 Windows 启动时 MyAPP 自动启动创建一个复选框任务。
我的代码如下:
并且,如何编写下面的代码 - 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.', mbInformation, 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} 影响目标计算机的所有用户。
Edit
您还可以使用注册表来启动应用程序。我添加这个是因为评论中提到的OP所描述的方法在Windows 8上不起作用(因为缺少开始菜单,我忘记了)。我手头没有 Windows 8 可供测试,因此由您来测试这是否适用于 Windows 8。
The 运行注册表中的键 http://support.microsoft.com/kb/314866自 WinXP 以来就存在,因此您可以将 Windows 配置为从安装程序自动运行程序,添加如下内容:
[Registry]
;current user only
Root: HKCU; Subkey: "Software\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "MyProgram"; ValueData: "{app}\MyProg.exe"; Tasks:AutoRunRegistry;
;any user
Root: HKLM; Subkey: "Software\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "MyProgram"; ValueData: "{app}\MyProg.exe"; Tasks:AutoRunRegistry;
不要错过我也在改变Tasks
示例中的参数为AutoRunRegistry
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)