Win7 C ++ - kiosk模式应用程序没有管理员权限

时间:2016-03-28 13:30:44

标签: permissions registry qt5 kiosk

我正在使用Kiosk系统,我需要能够锁定键盘并动态关闭登录屏幕选项。所以在启动时我的代码会执行这些操作,如果插入了安全加密狗,它会撤消它们。

在非Kiosk中正常工作,当我右键单击该应用程序并选择“以管理员身份运行”时。键盘被锁定(我正在捕捉击键),但登录屏幕继续提供所有五个选项按钮。我在文件中添加了调试写入,发现原因是“访问被拒绝”。

我的Kiosk设置了一个已获得管理员权限的用户,并且应用程序路径名(C:\\。exe)已设置为HKEY_CURRENT_USER \ Software \ Microsoft \ Windows NT \ CurrentVersion \ WinLogon中的Shell值。由于此应用程序将作为会话0运行,因此我不确定还需要做什么才能授予其禁用和启用五个登录屏幕选项的权限。

1 个答案:

答案 0 :(得分:2)

我有开发Kiosk应用程序的经验,我建议您使用下一个解决方案。这是通用的解决方案,并按预期工作。在登录会话中运行应用程序 - 是个坏主意。运行应用程序通过winlogon regkey将不会在session0中运行,它将在用户会话中运行应用程序。

Windows自助服务终端模式需要接下来的步骤:

  • 为自助服务终端模式创建用户
  • 将此用户的下一个注册表项设置为应用程序的路径:

Windows XP / 7:

var React = require('react');
var Chart = require('chart.js');
var LineChart = require("react-chartjs").Line;


var LineChart = React.createClass({


  render: function() {

    return <LineChart width="600" height="250"/>
  }
});

Windows 8及更高版本:

Windows Registry Editor Version 5.00

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

自助服务终端用户的自动登录:

Windows Registry Editor Version 5.00

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

[选项] 如果您需要禁用Ctrl + Alt + Del,则使用此注册表项值(“”)或者您可以放置​​自己的应用程序:

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"=""

使用此应用程序作为shell创建kiosk用户,并使用密码创建/激活admin。使用自动加载作为管理员按下移动窗口加载时,自动登录或登出时 - 窗口将不会自动登录并显示用户列表。或者,您无法设置自动登录,Windows将显示2个用户:admin和kiosk用户使用此软件。

要禁用用户输入,请使用WINAPI BlockInput

Windows Registry Editor Version 5.00

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

可以通过ctrl + alt + del启用它 - 在这种情况下,程序上方的解决方案可以再次禁用它。