Windows注册表运行密钥

时间:2015-01-12 22:33:22

标签: windows command-line registry startup

根据http://msdn.microsoft.com/en-au/library/aa376977(v=vs.85).aspx

“Run和RunOnce注册表项会在每次用户登录时运行程序。键的数据值是命令行。”

我是否可以添加密钥:

  • 姓名:MyName
  • 数据:START /MIN "Title" "cmd.exe" /c "@echo off && "C:\TestApplication.exe" -Arg1 "Arg2"

目标是在Windows启动时使用参数"C:\TestApplication.exe"最小化控制台应用程序"-Arg1 "Arg2""

我问,因为我似乎无法让它发挥作用。

1 个答案:

答案 0 :(得分:0)

该文档具有误导性,但并非严格错误。命令行直接传递给CreateProcess()而不是传递给cmd.exe,因此cmd.exe内部的命令(例如start)无效。这意味着您需要在命令行的开头添加cmd /c

您最后也错过了引号,而且您不需要在cmd.exe周围加上引号。这有效:

cmd /c START /MIN "Title" cmd /c "@echo off && "C:\TestApp.exe" -Arg1 "Arg2""

但是,由于目标应用程序是可执行文件,而不是批处理文件,因此您不需要@echo命令:

cmd /c START /MIN "Title" cmd /c ""C:\TestApp.exe" -Arg1 "Arg2""

(请注意,传递给/c的命令行永远不会被回显。)