1

在软件安装期间,我需要在下次重新启动后运行一些代码。为此,我在此注册表项下放置了指向 EXE 的链接:

软件\Microsoft\Windows\CurrentVersion\RunOnce

我的问题是,我应该把 EXE 本身放在哪里?运行后不需要 EXE,安装程序不会在 Program Files 下创建任何文件夹,我可以将其放置在其中。将其置于 %TEMP% 下是否安全?恐怕到 Windows 重新启动时,%TEMP% 可能会被清除并删除 EXE。我可以在 Program Files 下创建一个文件夹并将其放在那里,但是该文件夹在运行一次后将永远保留在那里。

有什么推荐的行为吗?

4

2 回答 2

1

由于您要求推荐的行为,您应该首先尝试避免重启和重启后的 exe。您能否分享信息以提供有关重构的建议?

这需要每个用户运行一次还是总共只运行一次?(您没有说明 HKEY_CURRENT_USER 或 HKEY_LOCAL_MACHINE )

如果只有一次,您怎么知道下一个用户将拥有管理员权限?如果每个用户一次,您是否不希望 EXE 停留很长时间以确保有一天登录的人可以使用它?

无论哪种方式,我建议在没有这种模式的情况下找到方法来完成您需要完成的事情,即使这意味着改变应用程序设计以实现它。

于 2011-02-12T18:27:40.417 回答
1

您可以检查流行的安装程序是如何执行此操作的(installshield?),或者您可以选择一个快速的解决方案,例如将文件放在 %APPDATA% 中。

当然,最好的选择是编写一个不需要重新启动的安装程序,或者至少在重新启动后不需要再次运行。;-)

于 2011-02-12T14:43:27.923 回答