在 windows mobile 6.5.3 中禁用 SmartMinimize 硬按钮/确定硬按钮

Posted

技术标签:

【中文标题】在 windows mobile 6.5.3 中禁用 SmartMinimize 硬按钮/确定硬按钮【英文标题】:Disable SmartMinimize Hard button/ OK hardbutton in windows mobile 6.5.3 【发布时间】:2013-06-18 12:23:19 【问题描述】:

我无法从我的代码中禁用“确定”硬件按钮。要禁用我正在使用的其他按钮

        private void DisableButton(IntPtr Handle, Int32 code)
        
            UnregisterFunc1(KeyModifiers.Windows, code);
            RegisterHotKey(Handle, code, KeyModifiers.Windows, code);

        

其中代码 = 来自http://msdn.microsoft.com/en-us/library/bb431750.aspx 的十六进制代码

要禁用“确定”按钮,我需要禁用“VK_RWIN + VK_F6”,它是 2 个十六进制代码的组合。有人可以帮助我用上述方法或任何其他方法实现相同的目标吗?

注意:我使用的是摩托罗拉 ES400(如果这有任何帮助的话)。

【问题讨论】:

【参考方案1】:

您在 Visual Studio 2008 中运行代码的模拟器是否有类似的按钮?

如果没有,您可能想尝试获得某种支持您的 ES400 设备的摩托罗拉 SDK。

这样,您可以双击设计器中的按钮,然后忽略该输入或编写一些内容来绕过它。也可能有一个 Key Down 事件,您可以为其编写代码,这样会更好。

我没有 ES400,所以我不能肯定这会起作用。

【讨论】:

KeyDown 事件永远不会为这些键触发(OK、Call、Call end、Windows 等)。所以我无法在 keydown 事件中捕获这些键。因此我采用了 coredll.dll 中的 UnregisterFunc1 和 RegisterHotKey API【参考方案2】:

要捕获所有密钥,您可以更好(更简单)使用 AllKeys() API。

但即使使用 AllKeys(TRUE),紧凑框架运行时也不会转发所有击键。一个很好的解决方案是 OpenNetCF 框架的 PreFilterMessage 函数。请参阅我的文章http://www.hjgode.de/wp/2012/09/20/windows-mobile-cf-how-to-catch-f1-and-f2-in-weh/

使用 PreFilerMessage,您应该能够捕获 VK_RWIN+VK_F6 组合。

【讨论】:

以上是关于在 windows mobile 6.5.3 中禁用 SmartMinimize 硬按钮/确定硬按钮的主要内容,如果未能解决你的问题,请参考以下文章

在 Microsoft Windows Mobile 6.5.3 Professional 上开发 java 应用程序

Windows Mobile 6.5.3 预处理器

无法连接到 windows mobile 6.5.3 设备上的 sql server management studio 中的 sdf 文件

Windows 10 Mobile是否支持UWP应用程序的Fluent设计系统?

Windows Mobile系列学习四:Windows Mobile如何进行打包设置打包显示图标

Windows CE\Mobile 上的 Subsonic\ORM