如何使应用程序显示在全屏模式下,覆盖开始菜单

本文关键字:覆盖 开始 菜单 模式 应用程序 何使 显示 | 更新日期: 2023-09-27 18:05:52

我正在为霍尼韦尔Dolphin 6100开发一个应用程序,这是一款带有条形码扫描器的移动计算机,使用Windows CE 5.0操作系统。

问题是我不能把应用程序放到全屏(屏幕下面的开始菜单坚持要出现),我尝试了许多代码,但不幸的是没有成功:

解决方案1 :

int w = Screen.PrimaryScreen.Bounds.Width;
int h = Screen.PrimaryScreen.Bounds.Height;
this.Location = new Point(0, 0);
this.Size = new Size(w, h);

解决方案2 :

this.TopMost = true;
this.FormBorderStyle = FormBorderStyle.None;
this.WindowState = FormWindowState.Maximized;

有人有解决这个问题的办法吗?

如何使应用程序显示在全屏模式下,覆盖开始菜单

您可以自动隐藏任务栏,选择Start->Settings->Taskbar and Start Menu...,取消选择Always on top,选择Auto hide

如果这不是一个选项,有一个危险的方法来防止explorer.exe在引导过程中加载。要做到这一点,[HKEY_LOCAL_MACHINE'init]不能被写保护。要防止explorer.exe加载,请修改以下注册表项

[HKEY_LOCAL_MACHINE'init]
Launch50="explorer.exe"

到例如no_explorer.exeLaunch50中的50将根据设备而变化。

如果你在这里搞砸了,你需要telnet访问你的设备,这样你就可以手动启动explorer.exe或通过一种方式重置设备。建议您在尝试这个之前有一种方法来重置设备。重要的是要注意,您的应用程序必须从OEM启动器启动,或者通过将您自己的应用程序添加到设备的启动过程中启动。请参阅http://msdn.microsoft.com/en-us/library/ms901773.aspx获取如何操作的信息。

Edit:如果您选择将应用程序添加到启动进程的路线,则需要向系统发出应用程序已经启动的信号。你可以用c++编写一个简单的引导程序来完成这个任务。

#include "stdafx.h"
#include <Windows.h>
#include <iostream>
void StartMyAppFunction();

int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPTSTR    lpCmdLine,
                   int       nCmdShow)
{
    StartMyAppFunction( );
    // Since this is application is launched 
    // through the registry HKLM'Init we need 
    // to call SignalStarted passing in 
    // the command line parameter
    SignalStarted(_wtol(lpCmdLine));
    return 0;
}
void StartMyAppFunction() ...

auto-hidingtask bar使用一些技术(该选项已经存在于WinCE的control panel中)。你可以参考

任务栏自动隐藏=全屏应用程序..:)