如何定制Windows Embedded Compact 7 shell详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何定制Windows Embedded Compact 7 shell详解相关的知识,希望对你有一定的参考价值。

  1.7.1 创建一个操作系统设计
  创建一个支持屏幕旋转的操作系统设计,在 New platform 向导中进行如下选择:
  ·命名操作系统设计为 Screen Rotation:
  ·从可用的 BSP 列表中选择 Virtual PC: X86 :
  ·从可用的设计模板列表中选择 Handheld 。
  1.7.2 修改注册表设置
  在默认情况下,当操作系统映像下载到目标平台之后,屏幕的旋转角度为 0 °,即不产生旋转,开发者可以通过修改相应的注册表来更改这个默认设置。随后,在目标平台上运行的任何应用程序可以旋转屏幕,覆盖这个注册表设置。

  下面的过程设置屏幕旋转注册表键:
  (l) 在 Solution 窗口,选择 ParameterFile 选项卡

  图 1.1 选择 ParameterFile 选项卡

  (2) 展开目录树,选择 Project Specific Files 结点;
  (3) 双击 OSdesign.reg 在编辑窗口中打开它;
  (4) 为了设置当前操作系统设计屏幕旋转的默认角度,将下列文本添加到 Project.reg文件的末尾,下面的例代码将默认的屏幕角度设置为 Ox5A ,即 90 。:
  : Settings to rotate the scrcen by 90 degrees clockwise upon download
  [HKEY_LOCAL_MACHINE\\System\\GDI\\Rotation]
  “Angle”=dword:5A
  (5) 保存并关闭 Project.reg 文件

  
  1.7.3 创建屏幕旋转应用程序
  这里我们将在当前的操作系统设计中创建一个使用户能操作屏幕旋转的应用程序,使用户能根据需要以 90 °为增量顺时针旋转屏幕。
  下面过程创建一个屏幕旋转应用程序工程:
  (1) 打开 ScreenRotation 操作系统设计。
  (2) 从“ File ”菜单上选择“ New Project or File ”,在“ Projects ”选项卡上选择“MFC Smart DeviceApplication ” 。
  (3) 在“ Project name ”框中输入屏幕旋转应用程序工程名“ Rotate ”,默认情况下, Platform Builder 将这个工程存储在当前操作系统设计的文件夹下 .
  (4) 选择“ Workspace Project ”单选按钮,单击“ OK ”按钮,系统显示“New ProjectWizard ”对话框。
  (5) 选择 yincheng_OS SDK.
  (6) 在当前工程的创建结束后,在 “FileView” 选项卡的 Projects 目录树下会显示新创建的 Rotate 工程。
  (7) 在 “Workspace” 窗口中选择 “ClassView” 选项卡,找到 WndProc 回调 函数,双击WndProc 在编辑窗口中打开它。
  (8) 在 WndProc 函数的 Switch 语句 中添加以下代码:
  case WM_CREATE:
  HWND hwndRotateButton;
  hwndRotateButton= CreateWindow(TEXT(”button”).TEXT(”Rotate Me”),
  WS_CHILDIWS_VISIBLE IBS_PUSHBUTTON, 50. 50.100.75. hWnd.
  (HMENU)J,((LPCREATESTRUCT)iParam)->hlnstance,NULL);
  break;
  这段代码通过在WM_CREATE 消息中添加一个 “Rotate Me” 按钮来为用户提供一个界面,允许用户通过单击这个按钮 来旋转屏幕。 WM_CREATE 消息是在应用 程序主窗口创建时自动被调用的。
  (9) 为了处理 Rotate 按钮消息,需要在 WndProc 函数的 Switch 语句中添加 “case WM_ COMMAND ” 消息处理语句,当 用户按下 “Rotate Me” 按钮时,应用程序调用WM_COMMAND 消息。
  下面的 “case WM_COMMAND” 代码响应 “Rotate” 按钮来设置屏幕旋转:
  case WM_COMMAND:
  // 返回当前屏幕方向
  DEVMODE devMode;
  memset(&devMode.0x00,sizeof( devMode));
  devMode.dmSize =sizeof(devMode);
  devMode.dmFields= DM_DISPLAYORIENTATION:
  ChangeDisplaySettingsEx(NULL,&devMude,NULL,CDS_TEST.NULL);
  // 计算新的旋转角度
  switch( devMode.dmDisplayOrientation)
  
  case DMDO_0:
  devMode,dmDisplayOnentation= DMD0_90;
  break;
  case DMD0_90;
  devMode,dmDisplayOrierjtation = DMDO_180;
  break;
  case DMD0_180:
  devMode.dmDisplayOrientation = DMD0_270;
  break:
  case DMD0_270:
  devMode.dmDisplayOrientat.ion = DMDO_0:
  break:
  default;
  devMode.dmDisplayOrientaiion = DMDO_0;
  Break ;
  }
  // 设置新的屏幕方向
  devMode.dmFields =DM_DISPLAYORIENTATION;
  ChangeDisplaySetcingsEx(NULL.&devMode.NULL,CDS_RESET.NULL);
  break;
  在以上代码中,使用ChangeDisplaySettingsEx函数将特定显示设备设置为特定的图形模式,如果设置成功,则操作系统将向所有运行的应用程序发送 WM_SETTINGCHANGE 消息。同时,上面的代码还使用了 DEVMODE 结构 来查询显示驱动程序支持的旋转角度。
  (10) 在设置新的屏幕方向之后,还需要在 WndProc 函数的 Switch 语句中添加 “case WM_ SETTINGCHANGE ” 消息来旋转屏幕显示,代码如 下:
  case WM_SETTINGCHANGE
  // 在旋转之后刷新显示器
  Sleep(250); // 给系统一点时间完成旋转
  int Screen_x, Screen_y;
  Screen_x= GetSystemMetricsf( SM_CXSCREEN); // 获得屏幕 x 和 Y 方向的尺寸
  Screen_y= GetSyscemMetrics( SM_CYSCREEN);
  MoveWindowthWnd,0 , O , Screen_x, Screen_y, TRUE); // 改变窗口大小并重画窗口
  Break;
  (11) 保存 Rotate.cpp 文件。
参考技术A http://blog.csdn.net/hyw_mvp/article/details/8562742

在 Windows Embedded 中安装第二次登录

【中文标题】在 Windows Embedded 中安装第二次登录【英文标题】:Install Second logon in Windows Embedded 【发布时间】:2011-01-14 14:10:20 【问题描述】:

刚刚获得了几台运行 Windows Embedded 2009 的新 PanelPC,我们将发送给客户。

在我们发送它们之前,我们在它们上安装了我们的软件,现在发现“第二次登录”服务不在 PC 上的 Windows Embedded 安装中。

我们无法自行更改 Windows Embedded 映像,现在正在尝试找出是否可以安装“第二次登录”?

有人知道吗?

【问题讨论】:

在微软论坛上进行了一些沟通后发现没有什么好的方法可以添加第二次登录。唯一的办法是向制造商索取新图像,结果证明这很容易,所以现在我们已经启动并运行了。 【参考方案1】:

在微软论坛上进行了一些沟通后发现没有什么好的方法可以添加第二次登录。唯一的办法是向制造商索取新图像,结果证明这很容易,所以现在我们已经启动并运行了。

【讨论】:

以上是关于如何定制Windows Embedded Compact 7 shell详解的主要内容,如果未能解决你的问题,请参考以下文章

什么是 Windows Embedded Standard 7

如何在 Windows Embedded 8 中自动启动非 Surface 应用程序?

如何将 MFC 应用程序移植到 Windows Embedded Compact 7?

Windows Embedded 中的远程调试

Windows 7 Embedded - 以编程方式禁用磁盘缓存:

在 Windows Embedded Handheld 6.5 上运行 Java 应用程序