代码之家  ›  专栏  ›  技术社区  ›  m-abdi

在WindowsXP中尝试设置自定义winlogon shell时丢失了PATH

  •  -1
  • m-abdi  · 技术社区  · 13 年前

    我已经更改了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命令添加到批处理文件中,但它也不起作用。

    2 回复  |  直到 13 年前
        1
  •  0
  •   Ansgar Wiechers    13 年前

    将批处理文件更改为:

    set PATH=%PATH%;C:\MyAppPath
    
    start "myFirstAppTitle" "myApp1.exe"
    start "mySecondAppTitle" "myApp2.exe"
    

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

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

        2
  •  0
  •   m-abdi    13 年前

    问题解决得很奇怪,我删除了启动命令的title参数,它就起作用了。事实上,我曾经 开始 命令这种方式:

    set PATH=%PATH%;C:\MyAppPath
    start myapp.exe 
    start myapp2.exe
    
    推荐文章