我正在配置 Windows 7 Professional x64 以在“信息亭”模式下将自定义应用程序作为外壳运行。也就是说,用explorer.exe我的应用程序替换默认 shell ( ) 并以特定用户身份自动登录。
[HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon]
"AutoAdminLogon"="1"
"DefaultUserName"="applicationuser"
"Shell"="c:\Program Files\my-app\whatever.exe"
Run Code Online (Sandbox Code Playgroud)
我还在启动时关闭了 Windows 徽标闪屏(在 msconfig 中)。机器不在任何域上。
当我打开机器电源时,我看到 BIOS 屏幕,然后是黑屏(Windows 徽标所在的位置),然后用户登录页面快速闪烁(在自动登录期间),然后它在空白屏幕上停留了几分钟.
光标在屏幕上但无法操作。而且我相当确定这不是我的应用程序,因为当我在常规桌面场景中运行它时,它启动得非常快。对于正在启动信息亭或可能在启动后但在应用程序启动之前接近信息亭的用户来说,这是一种糟糕的体验。
有谁知道 Windows 在 kiosk 模式下在幕后做了什么可以解释这种延迟?或者如何追踪正在发生的事情?
或者有没有人有什么奇思妙想诱使用户认为自助服务终端正在运行?(我不知道此时在 Windows 自助服务终端启动时我还能控制什么……我可以显示背景图像而不是单调的绿色/蓝屏吗?)
小智 5
很可能您没有告诉 Winlogon 您的应用程序已准备就绪。将以下代码放在 main() 的顶部(这都是 C++,因此您可能需要翻译成您选择的语言):
/*
* Signal to Winlogon that the shell has started and the login screen can be dismissed
*/
HANDLE hShellReadyEvent;
hShellReadyEvent = OpenEvent(EVENT_MODIFY_STATE, false, L"msgina: ShellReadyEvent");
if( hShellReadyEvent != NULL )
{
SetEvent( hShellReadyEvent );
CloseHandle( hShellReadyEvent );
}
Run Code Online (Sandbox Code Playgroud)
这将从您的启动过程中节省至少 30 秒。
| 归档时间: |
|
| 查看次数: |
4673 次 |
| 最近记录: |