5

我有一个使用 Eclipse 用 Ja​​va 编写的程序,然后放入 .jar 文件中。然后,我使用 launch4j 从我的 .jar 文件生成可执行文件,并包含一个 .manifest 文件以使可执行文件以管理员权限运行。我将可执行文件放在我的 C:\ 文件夹 C:\Prog_1.exe 中。然后,我进入 regEdit 并在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 下添加了一个字符串条目,其值名称为:Prog_1,值:C:\Prog_1.exe。

我的问题是,如果我单击可执行文件,它似乎运行良好......弹出小警告框并询问我是否要运行该程序,我点击是,它会按照我的预期运行。但是,如果我重新启动系统,由于我对注册表所做的编辑,我希望程序在启动时运行,但这并没有发生。没有弹出警告框询问我是否要运行程序并且代码没有执行。我错过了什么?

编辑:我还尝试将可执行文件添加到启动文件夹中,但这也没有导致它在启动时运行。

我应该提到我正在运行 Windows 7 Pro。感谢您的任何帮助!

4

3 回答 3

13

只是出于好奇,您的 Windows 版本是 64 位吗?

如果是,那么您必须在其他位置添加注册表项。我的 UPS 附带的 UPS 显示器也有类似的问题。事实证明,如果您有 64 位 Windows 7,则必须将启动注册表项放在此处:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run

这对我来说就像一个魅力,一旦我与任何用户开始会话,就会出现烦人的 UAC 对话框。

于 2012-04-18T00:49:42.877 回答
2

通常它会是这样的。使用管理权限打开 cmd 并在命令行上运行:

REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /V "Prog_1" /t REG_SZ /F /D "%homedrive%\Prog_1.exe"

或者在某些 Win x64 系统上:

REG ADD "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run" /V "Prog_1" /t REG_SZ /F /D "%homedrive%\Prog_1.exe"

并删除注册表项:

REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /V "Prog_1" /F

或在某些 Win x64 系统上:

REG DELETE "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run" /V "Prog_1" /F
于 2021-05-25T14:00:28.003 回答
0

为后代记录一个陷阱 - 这个位置应该可以工作:

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

但根据我的经验,如果您使用的是内置管理员帐户,它通常不起作用。

如果您使用不同的管理员帐户,则一切正常。

于 2018-11-16T01:10:21.543 回答