0

我想使用注册表项向 Windows 启动添加一个名为“itManager”的程序。因此,我已将所需的密钥添加到 Windows 注册表中,如有关该主题的 Stackoverflow 线程中所读。这是一个转储:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"BCSSync"="\"C:\\Program Files\\Microsoft Office\\Office14\\BCSSync.exe\" /DelayServices"
"itManager"="C:\\Program Files\\itManager\\bin\\itManager.exe"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\itManager.exe]
"Path"="C:\\Program Files\\itManager\\bin"
@="C:\\Program Files\\itManager\\bin\\itManager.exe"

但是我的 itManager.exe 没有启动。事实上,我猜是 Windows 启动了程序,但不是从需要的目录启动,导致软件立即退出(如果 itManager.exe 不是从 C:\Program Files\itManager\bin\ 启动,它就会失败)。

而且我不知道在哪里可以了解发生了什么...我尝试过 Windows 日志但没有成功。

所以我不知道如何调试这个。

谢谢,

4

3 回答 3

2

如果您的猜测是正确的,您可以尝试通过批处理文件 (.bat) 启动它。

使用文本编辑器创建一个新文件,将其命名为 itManager.bat。以这种方式编辑它:

echo off
cd C:\Program Files\itManager\bin\
itManager.exe

现在在启动时启动此文件而不是您的 .exe,它将从正确的文件夹执行 .exe。

我不知道是否有一种更简洁的方法可以通过注册表从不同的文件夹运行程序,但这应该可以。


编辑:我认为隐藏启动控制台窗口的唯一方法是编写批处理启动的脚本。

同样,在文本编辑器中,输入这些行:

Set WshShell = CreateObject("WScript.Shell" )
WshShell.Run chr(34) & "C:\yourPath\yourBatchName.bat" & Chr(34), 0
Set WshShell = Nothing 

并以 .VBS 扩展名保存。现在在您的注册表项中运行最后一个文件。

于 2012-11-19T15:05:45.343 回答
0

我的建议是在您的启动文件夹中创建 itmanager.exe 的快捷方式。

您将在开始菜单中找到启动组右键单击->打开(如果您希望程序为所有用户启动,则打开所有用户)并创建Itmanager.exe的快捷方式,您可以编辑快捷方式属性以设置启动目录

于 2012-11-19T15:11:17.823 回答
0

如果您像这样添加 start/d 它将起作用:

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
"ITM"="Cmd.exe /c start \"Itm\" /d \"c:\\Program Files\\itManager\\bin\" \"itManager.exe\""

或在批处理文件中:

reg add "hkcu\Software\Microsoft\Windows\CurrentVersion\Run" /v "ITM" /t reg_sz /f /d "Cmd.exe /c start \"Itm\" /d \"c:\Program Files\itManager\bin\" \"itManager.exe\""
于 2021-09-03T05:14:58.807 回答