-1

我已更改 Windows 注册表中的 shell 键以获得自定义 shell(Kiosk 使用):

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]

我将 shell 密钥设置为运行两个应用程序的批处理文件,如下所示:

start "myFirstAppTitle" "myAppPath\myApp1.exe"
start "mySecondAppTitle" "myAppPath\myApp2.exe"

每个应用程序都运行,但需要执行某些文件的第二个应用程序会抛出一个错误,提示找不到依赖文件。而依赖文件与 exe 文件相邻,并且提到的应用程序在启动时工作正常。

同时,当我手动运行批处理文件时,它运行良好。

我将 PATH 命令添加到批处理文件中,但它也不起作用。

4

2 回答 2

0

将批处理文件更改为:

set PATH=%PATH%;C:\MyAppPath

start "myFirstAppTitle" "myApp1.exe"
start "mySecondAppTitle" "myApp2.exe"

如果您在没有绝对路径的情况下启动可执行文件,则该路径是相对于当前工作目录的。此外,当您指定具有相对路径的可执行文件时,%PATH%不会搜索具有匹配可执行文件的匹配子文件夹。

由于脚本在您手动启动时有效,因此您的工作目录可能是C:\. 但是,当在登录时作为替换 shell 运行时,工作目录很可能是“%SystemRoot%\system32”。

于 2013-04-15T18:02:59.147 回答
0

问题奇怪地解决了,我删除了启动命令的标题参数并且它起作用了。事实上,我以这种方式使用了start命令:

set PATH=%PATH%;C:\MyAppPath
start myapp.exe 
start myapp2.exe
于 2013-04-30T08:36:54.887 回答