§ ITPOW >> 文档 >> C#

.NET 开发触摸屏、查询机用查询软件

作者:vkvi 来源:ITPOW(原创) 日期:2020-4-22

我们在博物馆、图书馆、办事大厅……往往会看到一些查询机,这些查询机的软件,通常基于 Windows 的,我们如何把这个 Windows 挡在后面,不让用户进入 Windows 界面,是我们所要考虑的。

一、全屏、最上层

创建一个 WinForm,设置窗体为无边框最大化,就实现了全屏(记住要无边框的配合)。

为了避免被其他窗体挡住,我们需要设置 TopMost

以下是代码,当然其实用不着明写代码,直接为窗体配置属性就可以了。

二、使用 WebView

查询软件的内容通常是网页表现,所以我们建议使用 WebView 来呈现这些网页,请参见:http://www.itpow.com/c/2014/02/6218.asp

三、调出屏幕触摸键盘

Windows 10 在平板模式下,通常会自动调出屏幕触摸键盘,在控制面板中也可以设置非平板模式下,也弹出。

但是,由于我们使用 WebView,这个 WebView 中的网页,不能自动调出屏幕触摸 键盘,所以我们需要手动触发,至于如何让 JS 代码执行 C# 代码,前面 WebView 中有讲。

Windows 键盘我们不能自由控制显示内容,所以它上面的设置键我们控制不了,也就是说用户可以点击设置弹出设置页面,不过还好,我们设置了 TopMost,所以尽管打开了设置页面,用户也看不到它。

四、禁止随意退出

不能人人通过屏幕触摸键盘的 Ctrl + Alt + Delete、Alt + F4 就把软件结束了,所以我们要在有权限的情况下才退出,如果试图退出,要求输入密码。

(一)屏蔽 Ctrl + Alt + Delete

有人说在注册表:计算机\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System 下项:名为 DisableTaskMgr,类型为 DWORD(32位),值为 1,就可以屏蔽了。其实这个是错误的,这个是屏蔽在 Ctrl + Alt + Delete 时菜单界面中,不显示“任务管理器”这个菜单项,并没有屏蔽掉 Ctrl + Alt + Delete。

这个是使用钩子(hook)解决,这里不谈论,有需要的自行百度。

(二)屏蔽 Alt + F4

五、禁止左右边缘滑动调出任务中心、操作中心等

在 Windows 10 中,触摸屏上,左右边缘滑动会调出任务中心、操作中心,这个可以用注册表屏蔽。

计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\EdgeUI

新建项:名为 AllowEdgeSwipe,类型为 DWORD(32位),值为 0。

重启。

六、后台程序

查询软件如果要跑一些后台程序,那么为了不影响前端界面,一定要注意两点:

  • 使用 trycatch

  • 使用线程

七、保障能够关闭

要确保 WebView 对应网页打不开虚拟键盘没弹出来的情况下,管理员可以从其他渠道(比如某个角落有个关闭按钮)进行关闭。

相关文章