2014-01-21 31 views
1

我有一个应用程序,在亭中使用。我在SetWindowsHookEx的注册表中禁用了任务栏并赢得了密钥。如何禁用屏幕键盘的Win键?

但是使用On-Screan键盘时可以打开startmenu。我使用PreviewKeyDown事件,但不起作用。

private void Window_PreviewKeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.Key == Key.LWin || e.Key==Key.RWin) 
    e.Handled = true; 
} 

如何禁用screan键盘的win键?

+0

如果你正在运行在kiosk模式下您的应用程序的一些信息...国际海事组织你所要做的就是不要加载Windows外壳程序在所有。许多事物(和捷径)必须被禁用。只需将explorer.exe中的shell更改为应用程序可执行文件,禁用任务管理器(使用gpedit)等等。你的应用程序将是shell。根本没有开始菜单(它来自哪里并不重要),也没有像Win + R或Win-E这样的_dangerous_快捷键。 –

+0

我有一个运行启动的应用程序,并填充所有桌面。自助服务终端与on-screan keyborad一起工作。我想禁用用户无法打开任何程序或驱动程序的startmenu。 – Niloo

+0

Kiosk模式不仅仅是没有任务栏的全屏应用程序。您可以禁用开始菜单,但屏幕键盘仍然会发送它(除非您更改键盘映射)。而且用户可以运行任务管理器。如果你想要一个信息亭模式,那么**配置Windows在信息亭模式下运行**(没有任务管理器,没有外壳)。这是做到这一点的方法。 –

回答

1

这个人似乎有它排序http://sleepydesign.blogspot.co.uk/2013/07/c-disable-system-keys-on-windows-on.html

但要使用相同的方法来挂钩

我想象我的代码扫描错过了一些东西从他们github的出现,他们是相当有信心它工程,明确指向屏幕键盘并禁用特定功能 。

我相信Windows键虚拟他的代码是

MOD_WIN  (0x0008) 

而且看看RegisterHotKey

+0

我如何在visual studio中使用它?我有应用程序,只需要使用屏幕键盘,但一些键被禁用,例如赢得键,Ctrl,Shift键,Alt键,所有功能键等 –