2016-03-28 77 views
1

我正在使用信息亭系統,我需要能夠鎖定鍵盤並在運行中關閉登錄屏幕選項。所以在啓動時我的代碼會執行這些操作,並且如果插入了安全加密狗,它就會解除它們。Win7 C++ - 信息亭模式應用程序沒有管理員訪問

當我右鍵單擊應用程序並選擇「以管理員身份運行」時,在非自助服務終端中正常工作。鍵盤被鎖定(我正在捕捉按鍵),但登錄屏幕繼續提供全部五個選項按鈕。我添加了調試寫入文件,並發現原因是「訪問被拒絕」。

我的信息亭設置爲已授予管理員權限的用戶,並且應用程序路徑名(C:\\。exe)已設置爲HKEY_CURRENT_USER \ Software \ Microsoft \ Windows NT \ CurrentVersion \ WinLogon的。由於此應用程序將以會話0運行,因此我不確定還需要執行哪些操作才能授予它禁用和啓用五個登錄屏幕選項的權限。

回答

1

我有開發Kiosk應用程序的經驗,我建議你下一個解決方案。這是通用解決方案,並按預期工作。在登錄會話中運行應用程序 - 是個壞主意。運行應用程序通過winlogon regkey將不會在session0中運行,它將在用戶會話中運行應用程序。

的Windows Kiosk模式需要下面的步驟:

  • 創建用戶的信息亭模式
  • 設置該用戶的路徑您的應用程序下一個註冊表項:

的Windows XP/7:

Windows Registry Editor Version 5.00 

[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Winlogon] 
"Shell"="C:\\full\\path\\to\\your\\application.exe>" 

Windows 8及更高版本:

Windows Registry Editor Version 5.00 

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System] 
"Shell"="C:\\full\\path\\to\\your\\application.exe>" 

自動登錄的信息亭用戶:

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon] 
"AutoAdminLogon"="1" 
"ForceAutoLogon"="1" 
"DefaultUserName"="kiosk" 
"DefaultDomainName"="<place here pc hostname>" 
"DefaultPassword"="" 

[選項]如果你需要禁用按Ctrl + Alt + Del鍵,然後用這個註冊表鍵值( 「」),或者你可以將有自己的應用程序:

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe] 
"Debugger"="\"\"" 

使用此應用程序創建自助服務終端用戶作爲shell並使用密碼創建/激活管理員。隨着自動登錄加載作爲管理員按下移位時,窗口加載和自動登錄或登出之前 - Windows不會自動登錄和顯示用戶列表。或者,您無法設置自動登錄,Windows將使用此軟件顯示2個用戶:admin和kiosk用戶。

要禁用用戶輸入使用WINAPI BlockInput

BOOL WINAPI BlockInput(
    _In_ BOOL fBlockIt 
); 

可以啓用按Ctrl + Alt + Del - 在這種情況下,你PROGRAMM上述方案可以禁用它。

相關問題