- VisualStudio2022插件的安装及使用-编程手把手系列文章
- pprof-在现网场景怎么用
- C#实现的下拉多选框,下拉多选树,多级节点
- 【学习笔记】基础数据结构:猫树
Windows有一个展台(Kiosk)模式。展台模式可以使Windows作为数字标牌进行使用。具体请参考Windows 展台 。
配置完展台模式,重启设备后,Windows会以全屏的方式运行展台应用,无法进入桌面。有点类似iPhone中的引导者模式。此时我们自己的应用如果设置了开机自启,也会运行,但是会被展台应用遮挡,无法显示在最前,即使设置了TOPMOST也没有用。其原因是展台应用使用了UIAccess.
如图:将Windows安全中心为展台应用 。
那如何判断我们的应用现在已经被展台遮挡了呢? 配置展台时,系统会将展台账户的SID写入注册表HKLM\SOFTWARE\Microsoft\Windows\AssignedAccessConfiguration\Configs\的子级,我们只需要获取当前进程的用户令牌,根据令牌拿到SID,再查询此SID是否存在于注册表中即可.
关键代码如下:
bool CheckIsKioskMode()
{
HANDLE hToken = NULL;
if (OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &hToken))
{
DWORD dwSize = 0;
if (!GetTokenInformation(hToken, TokenUser, NULL, 0, &dwSize) && GetLastError() == ERROR_INSUFFICIENT_BUFFER)
{
PTOKEN_USER pTokenUser = (PTOKEN_USER)malloc(dwSize);
if (GetTokenInformation(hToken, TokenUser, pTokenUser, dwSize, &dwSize))
{
PSID pSid = pTokenUser->User.Sid;
LPTSTR strSid = NULL;
if (ConvertSidToStringSidW(pSid, &strSid))
{
std::wstring basePath = L"SOFTWARE\\Microsoft\\Windows\\AssignedAccessConfiguration\\Configs\\";
std::wstring registryPath = basePath + strSid;
HKEY hKey;
LONG result = RegOpenKeyExW(HKEY_LOCAL_MACHINE, registryPath.c_str(), 0, KEY_READ | KEY_WOW64_64KEY, &hKey);
LocalFree(strSid);
free(pTokenUser);
CloseHandle(hToken);
if (result == ERROR_SUCCESS)
{
RegCloseKey(hKey);
printf("当前进程所在的会话是展台Kiosk模式\n");
return true;
}
else
{
return false;
}
}
free(pTokenUser);
}
}
CloseHandle(hToken);
}
return false;
}
最后此篇关于C++判断当前程序是否运行在Windows展台(Kiosk)模式下的文章就讲到这里了,如果你想了解更多关于C++判断当前程序是否运行在Windows展台(Kiosk)模式下的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在使用 PHP、HTML5 和 Javascript 开发 KIOSK 系统。我想在一台 PC 上连接多个(触摸屏)显示器。我希望这些监视器以全屏模式显示浏览器,用户只能访问我的网站而无需任何其他
我正在寻找一种在 Android 上退出 kioskmode 应用程序的解决方案。 Out 应用程序在 Kiosk 模式下运行,以防止通过按返回或主页按钮意外关闭,但我们需要根据请求关闭它。有人对此有
我目前正在 root Android 设备(来自 Ugoos 的 MK809III)上开发信息亭应用程序。 我的目标是用 WebView 开始一个 Activity 加载特定 URL 的全屏模式。 但
我希望在我的 Developer iPad 上设置一个一次性应用程序,以防止使用主页按钮(最好还有锁定按钮)。我想密码保护基本上离开应用程序。最好的方法是什么? 最佳答案 在这里查看我的答案 Lock
我的团队的任务是将用于播放媒体文件的全屏、信息亭式应用程序从 Windows 迁移到嵌入式 ARM Linux(瘦客户端)。我们需要在 sd/1080p 中支持 mpeg-2 播放以及 HTML、SW
Windows有一个展台(Kiosk)模式。展台模式可以使Windows作为数字标牌进行使用。具体请参考Windows 展台 配置完展台模式,重启设备后,Windows会以全屏的方式运行展
我需要在登录后启动我制作的应用程序,然后再加载其他任何内容。我通过浏览找到了如何做到这一点,并且我的应用程序只是按我的意愿启动,但是当我需要使用键盘输入内容时,什么也没有发生,我该怎么办? 这是一个Q
我正在制作一个需要用户全神贯注直到实现指定目标的应用程序。在实现目标之前,如果用户尝试按“home”按钮,则应将其禁用,或者像 ios6 中的“kiosk 模式”一样。我只需要在启动应用程序时以编程方
有没有一种方法可以将树莓派设置为一种“信息亭”模式,在登录后只有一个java程序的GUI会自动启动? 最佳答案 您需要首先按照第一个答案中的说明为 pi 用户设置自动登录。 如果您使用默认 LXDE
在自助服务终端环境中,没有键盘,只有浏览器将其视为 2 键鼠标的设备,我需要使用鼠标右键单击。这是一个在浏览器中针对 file://.... 运行的自定义应用程序,在机场安检后无法访问互联网。 左键会
我必须为信息亭开发一个 html/js 应用程序。该信息亭将显示在 Windows 触摸屏上,具有“Windows Touch”功能。 似乎有一些框架可以在移动平台上使用手势,但我没有找到用于带有触摸
我有一个简单的 shell 脚本,可以在某个 url 上以 kiosk 模式启动 chromium。它工作正常,但在信息亭模式下,Chrome 设置中的缩放级别似乎会被忽略。 我通常可以使用 ctrl
Internet 上的某些安全网站(例如银行等)已禁用“右键单击”。我知道这只是为了防止最终用户访问“检查元素”或“工具箱”元素。但是,在某些浏览器上,只需按 F12 键或任何等效键就可以完成这项工作
我正在使用扩展程序运行 google chrome(版本 57)kiosk 模式: --kiosk-printing 自从更新后,我注意到从作业发送到打印机到实际打印有 1-2 分钟的延迟 我使用的是
我正在为 kiosk 模式编写 Android 应用程序。我正在使用本教程创建信息亭模式:http://www.andreas-schrade.de/2015/02/16/android-tutori
我有一个信息亭应用程序,必须始终禁用任务管理器以防止用户关闭程序。 但有些用户需要TaskManager来关闭挂起的程序。 任何帮助都会被挪用。 但是,我确信 Windows 中有一个功能可以防止关闭
我在 heroku 上有一个小的 Node 应用程序。它嵌入在 Chrome kiosk app 中. 我希望该应用只能在以自助服务终端模式安装它的 Chromebook 上访问。 我尝试过 HTTP
新 ElectronJS 窗口的 BrowserWindow 配置中的 kiosk: true 究竟做了什么? documentation只是说明参数指示窗口处于“信息亭”模式。我找不到有关这意味着什
我有一个相当基本的 React Native 应用程序。我想根据正在呈现的组件有条件地锁定/解锁应用程序。例如,如果 Player,我想锁定应用程序(在 kiosk 模式下)组件被渲染,然后解锁应用程
我们正在开发一个面向客户的 Electron 应用程序,该应用程序应以自助服务终端模式运行。该应用程序在装有 Windows 10 的触控设备上运行。 即使应用程序处于自助服务终端模式,用户也可以通过
我是一名优秀的程序员,十分优秀!