我正在将.NET应用程序从WM5移植到WM6.5。除了新的解决方案,我注意到开始菜单和标题栏(标题栏)的不同UI行为。我的应用程序需要以某种自助服务终端模式工作,用户无法退出应用程序并绕过我们的身份验证。为此,我在WM5上隐藏了开始按钮和关闭按钮。我正在使用以下功能:
SHFullScreen(hWnd, SHFS_HIDESTARTICON | SHFS_HIDESIPBUTTON);
隐藏按钮也适用于WM6.5,但还有另一个问题。用户可以点击标题栏(菜单栏,标题栏 - 我不确定它的名称是什么 - 屏幕顶部的栏)并可以访问Windows任务管理器。请参见附件截图
我打开了用户可以点按的地方,然后像这样前往任务管理器:
有关如何禁用该互动的任何想法?设备是摩托罗拉MC65。运行Windows Mobile 6.5。
因此,最终答案是下面发布的答案的一部分:
IntPtr tWnd = FindWindow("HHTaskBar", null);
EnableWindow(tWnd, false);
我们只是找到HHTaskBar并禁用它。它有一些缺点,但总体来说就是诀窍。
答案 0 :(得分:5)
您可以隐藏整个顶部任务栏并最大化您的表单:
// the following three lines are p/invoked
IntPtr tWnd = FindWindow("HHTaskBar", null);
EnableWindow(tWnd, false);
ShowWindow(tWnd, SW_HIDE);
// maximize your form
form.Size = new Size(240, 320); // or whatever the device's screen dimensions are
form.WindowState = FormWindowState.Maximized;
答案 1 :(得分:0)
尝试使用SHFS_HIDETASKBAR方法SHFullScreen,这在MSDN上以这种方式描述:
将任务栏放在底部 Z顺序。注意游戏或者 需要整个的应用程序 屏幕可能会使用此标志。确保这一点 您的应用程序大小已满 使用此标志前的屏幕。 否则,它看起来好像 这个功能什么也没做。
protected override void OnLoad(EventArgs e)
{
...
SHFullScreen(this.Handle, SHFS_HIDETASKBAR |
SHFS_HIDESIPBUTTON | SHFS_HIDESTARTICON);
base.OnLoad(e);
}
private const int SHFS_SHOWTASKBAR = 0x0001;
private const int SHFS_HIDETASKBAR = 0x0002;
private const int SHFS_SHOWSIPBUTTON = 0x0004;
private const int SHFS_HIDESIPBUTTON = 0x0008;
private const int SHFS_SHOWSTARTICON = 0x0010;
private const int SHFS_HIDESTARTICON = 0x0020;
[DllImport("aygshell")]
static extern bool SHFullScreen(IntPtr hwnd, int dwState);