公司要求用c#(wpf或winform)做一个桌面程序(非metro app),要能够独占屏幕运行,且在触屏设备上运行,要支持触摸操作。
大部分快捷键已经通过键盘钩子屏蔽了,但是触摸呼出charms bar、屏幕左边缘的程序切换和上边缘的关闭应用,不知道该怎样禁掉。
最好能够打开应用的情况下禁用,关闭应用时重新启用。
谢谢!
11月10日补充:
我准备用全局钩子阻止某些起点的触摸操作,但是一直不成功。
用的WH_GETMESSAGE这个钩子,主要代码如下:
1 //... 2 SetWindowsHookEx(WH_GETMESSAGE, (HOOKPROC)HookProc, hInstance, 0); 3 //... 4 LRESULT CALLBACK HookProc(int nCode, WPARAM wParam, LPARAM lParam) 5 { 6 if (nCode < 0) 7 { 8 return CallNextHookEx(hhkHook, nCode, wParam, lParam); 9 } 10 MSG *msg = (MSG *)lParam; 11 if (msg->message >= 0x0240 && msg->message <= 0x0250) 12 {//触摸相关消息 13 wchar_t sss[10]; 14 swprintf_s(sss, L"%x", (int)msg->message); 15 ::MessageBox(0, sss, L"message741", MB_OK); 16 } 17 return CallNextHookEx(hhkHook, nCode, wParam, lParam);
18 } 19 //...
运行的时候,点击屏幕有消息弹出,滑动的时候没有任何反应。
求解呀。。。
除了DirectX开发的全屏游戏,我想不到有什么办法可以把charms bar屏蔽了。。。
这个有挑战!要关闭估计很难,当然,如果你从底层触发,走API的路线,应该是可行的,只是成本会很高。
能详细讲解一下吗?有哪些API呢?
@Joyce.Xi: 只是给你意见和建议,想要做到可能可行的方案,我目前暂不做wpf相关开发,所以没去刻意研究过。
求解。。。。。。。。