我正在configurationWindows 7 Professional x64,以“kiosk”模式运行自定义应用程序。 也就是说,将我的应用程序和自动loginreplace为默认shell( explorer.exe )作为特定用户。
[HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon] "AutoAdminLogon"="1" "DefaultUserName"="applicationuser" "Shell"="c:\Program Files\my-app\whatever.exe"
我也closures了启动时的Windows徽标启animation面(在msconfig中)。 该机器不在任何域上。
当我打开机器时,我看到BIOS屏幕,然后出现黑屏(Windows徽标已经出现),然后用户login页面快速闪烁(在自动login期间), 然后在空白屏幕上停留数分钟 。
光标在屏幕上,但无法使用。 而且我相当确定这不是我的应用程序,因为当我在普通的桌面环境中运行它时,启动速度非常快。 对于正在启动自助服务terminal的用户来说 , 这是一个糟糕的体验,或者在自助terminal启动之后,但在应用程序启动之前,可能正在接近自助服务terminal 。
有没有人知道Windows在售货亭模式下幕后可以解释这种延迟? 或者如何追踪发生了什么?
还是有没有人有任何想法欺骗用户认为亭子运作? (我不知道还有什么我可以控制在这个时候在Windows kiosk启动…我可以飞溅一个背景图像,而不是单调的蓝/蓝屏?)
很可能你没有告诉Winlogon你的应用程序已经准备好了。 把下面的代码放在main()的顶部(这是所有的C ++,所以你可能需要翻译成你select的语言):
/* * 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 ); }
这将从您的启动过程至less30秒。
确保没有安装从您的信息亭的位置无法访问的映射驱动器。 如果在实验室或testing设备中映射驱动器,并尝试从无法访问networking的地方访问该驱动器,则login需要很长时间,直到Windows意识到远程驱动器无法访问。