在自定义 Shel Kiosk 模式下,在 Windows 11 家庭版 PC 上运行的 PoKeys57CNC 和 Mach4 通信出现问题

在自定义 Shel Kiosk 模式下,在 Windows 11 家庭版 PC 上运行的 PoKeys57CNC 和 Mach4 通信出现问题

一些背景信息

我正在使用 Windows 11 Home PC 来控制等离子切割机。Windows 11 机器使用 Mach4 作为控制等离子切割机的接口,并使用 PoKeys57CNC 作为 CNC 的控制板。

PC 方面

我正在尝试为 PC 创建一种单应用模式,这样当我登录到特定用户帐户时,只有 Mach4 会运行,而不会运行其他应用。我已成功通过修改注册表项创建此 Kiosk 模式,例如:

  • HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon [Shell]
    设置登录时加载哪个应用程序,这是explorer.exe默认设置。
  • HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer [NoViewContextMenu]
    文件资源管理器打开时禁用右键单击。
  • HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer [NoTrayContextMenu]
    禁用右键单击 Windows 开始菜单(我认为)。
  • HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer [NoViewOnDrive]
    禁用对 Windows 上某些驱动器号的访问,在我的例子中,我将其设置为禁用对所有驱动器(不包括 Z 驱动器)的访问。然后,在另一个脚本中,我创建一个subst连接到特定文件夹的虚拟驱动器(使用),并将其设为 Z 驱动器。
    这会导致问题,所以我实际上并没有使用它,但我认为我会将它包括在内。
  • HKCU\Console\%%启动 [委托控制台]
    将默认终端更改为使用 Windows 控制台主机而不是 Windows 终端。
  • HKCU\Console\%%启动[委托终端]
    将默认终端更改为使用 Windows 控制台主机而不是 Windows 终端。
  • HKCU\Software\Classes\CLSID{52205fd8-5dfb-447d-801a-d0b52f2e83e1}\shell\opennewwindow\command [默认]
    设置 Windows 资源管理器的默认打开位置。我将其设置为 Z 盘。
  • HKCU\Software\Classes\CLSID{52205fd8-5dfb-447d-801a-d0b52f2e83e1}\shell\opennewwindow\command [DelegateExecute]
    做了一些我现在想不起来的事情。
  • HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System [DisableTaskMgr]
    正如它所说,这会在签名时禁用任务管理器访问(以便没有人禁用 Kiosk 模式)。
  • HKCU\Software\Policies\Microsoft\Edge\URLBlocklist [1]
    禁用 Microsoft Edge 上的所有 URL。

这导致 Kiosk 模式正常运行,但 Mach4 与 PoKeys 的连接出现问题。在 Shell 条目中,我有一个自定义 powershell 脚本,该脚本在每次登录时加载,并指示用户登录时运行的内容。在本例中,我的脚本基本上创建了虚拟 Z 驱动器(使用subst),并启动 Mach4 应用程序。最后,当 Mach4 关闭时,它会退出用户帐户。

我试图弄清楚问题可能是什么,并发现了一些有趣的事情,这些事情可能会让比我更有知识的人弄清楚,因为我还没有做到这一点。

  1. 它在主用户帐户(即管理员帐户)上运行良好,没有任何问题。
  2. 当注册表项未全部设置好时,它可以在信息亭帐户上运行(我认为唯一影响这一点的注册表项是第一个将 Windows shell 更改为其他内容的注册表项。
  3. 当在信息亭用户帐户中加载所有注册表项时,如果我登录(加载 Mach4)然后退出 3 次,然后再登录一次。连接已建立,并且运行正常。
  4. 我在登录 shell 脚本中包含了一些代码,这些代码本质上是关闭并打开 Mach4 4 次,然后最后一次打开以供实际使用。这并没有解决问题,这意味着退出并再次登录的过程可以解决问题。

相关内容