这适用于 Windows Embedded Standard 7 和 Windows Embedded 8 Standard:
我通常使用标准外壳安装 Windows Embedded Standard。在 WE8S 中,这将是 Metro UI。一旦安装和配置完成,并且您的应用程序成功运行,我使用注册表项来修改启动时启动的应用程序。
自定义用户特定的外壳
例如,要以 shell 启动 VLC 媒体播放器,并连续循环播放 d:\ 上的文件夹中的媒体文件,例如 d:\media,我在 .bat 文件中使用以下内容,以管理员身份运行。
这必须在登录到将启动自定义 shell 的用户时运行
这会修改!Current User! 的 shell!(即登录用户)在登录时启动 VLC.exe。(我使用 reg.exe 是因为一些精简的安装可能不包含 regedit.exe)
这意味着您在以管理员用户身份登录时仍然可以访问完整的用户界面(如果管理员配置文件通常被禁用,则通过安全模式),因为所有其他用户的外壳仍然是资源管理器外壳。
从自定义 shell 中启动 explorer shell
当使用自定义 shell 的用户登录时,您仍然可以使用 Metro UI 启动 explorer shell。要从运行 VLC(自定义)shell 的用户启动资源管理器 shell:
- 启动任务管理器(CTRL+SHIFT+ESC)
- 单击任务管理器底部的“高级”按钮
- 从菜单栏中选择“文件”->“新任务(运行...)”
- 输入“Explorer.exe”(这将启动资源管理器服务)
- 再次重复上述步骤(这将启动 Windows 资源管理器的一个实例)
- Metro UI 应该可以使用
作为 shell 的 Java 应用程序
更重要的是,为了运行您的 java 应用程序,请更改上述 .bat 中的以下条目
从:
c:\Windows\system32\reg.exe ADD "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /t REG_SZ /d "c:\program files\vlc\vlc.exe -f --loop ""d:\media"""
至
c:\Windows\system32\reg.exe ADD "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /t REG_SZ /d "java [any other JVM options you need to give it] -jar "path\jar-file-name.jar""
如果您的 java 应用程序不包含清单,则上述内容将不起作用!
试试这个(我没有测试过):
java -cp jar-file-name.jar full.package.name.ClassName
恢复到资源管理器(默认外壳),即撤消用户特定外壳
要为用户撤消 shell 更改,即恢复为原始设置:
!这必须在使用自定义 shell 登录用户时运行!
用户自动登录:
您可以将 Windows 配置为自动登录到特定的用户配置文件。
- 开始 > 搜索 > netplwiz
- 或 [Windows 键 + R] > netplwiz
- 将打开一个“用户帐户”窗口。突出显示要在 Windows 启动时自动加载的帐户。
- 取消选中上面标题为“用户必须输入用户名和密码才能使用这台计算机”的框。</li>
- 单击确定。
- 系统将提示您输入密码以确认操作。
- 输入您的密码以完成更改。
下次启动 Windows 时,将自动加载您选择的用户帐户
需要考虑的事项
玩,但如果可能的话使用测试环境如果你可以启动外壳,那么其他人也可以。使用键盘过滤器过滤掉已知的组合键,并创建一个只有您自己,也许服务技术人员会知道的组合键。使用自定义外壳删除用户的管理员权限使用统一写入过滤器(或增强的 Wright 过滤器/基于文件的写入过滤器)。仅在进行更改时取消保护。
非常感谢Sean Liming和所做的工作 - 他启发了这一点。
Mark Böhmer Windows Embedded 专家 南非