这适用于 Windows Embedded Standard 7 和 Windows Embedded 8 Standard:
我通常使用标准外壳安装 Windows Embedded Standard。在 WE8S 中,这将是 Metro UI。一旦安装和配置完成,并且您的应用程序成功运行,我使用注册表项来修改启动时启动的应用程序。
自定义用户特定的外壳
例如,要启动 VLC 媒体播放器作为 shell,并连续循环播放 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 应该可以使用了
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 登录用户时运行!
用户自动登录:
您可以将 Windows 配置为自动登录到特定的用户配置文件。
- 开始 > 搜索 > netplwiz
- 或 [Windows 键 + R] > netplwiz
- 将打开一个“用户帐户”窗口。突出显示您希望在 Windows 启动时自动加载的帐户。
- 取消选中上面标题为“用户必须输入用户名和密码才能使用这台计算机”的框。
- 点击确定。
- 系统将提示您输入密码以确认操作。
- 输入您的密码以完成更改。
下次启动 Windows 时,将自动加载您选择的用户帐户
需要考虑的事项
试一试,但如果可能,请使用测试环境
如果您可以启动 shell,那么其他人也可以。使用键盘过滤器过滤掉已知的组合键,并创建一个只有您自己的组合,也许服务技术人员会知道。
使用自定义 shell 删除用户的管理员权限
使用统一写入过滤器(或增强型 Wright 过滤器/基于文件的写入过滤器)。仅在进行更改时取消保护。
非常感谢您,感谢肖恩·李明和所做的工作 - 他启发了这一切。
马克·伯默
Windows 嵌入式专家
南非