Windows Embedded Standard开发初体验(四)

简介:

添加文件、依赖组件、注册表


       接下来我们就要进入创建组件最重要的一环了,添加文件。为什么说重要,因为这里有一个大坑,我在Windows Embedded Standard产品组施卫娟老师的指导下,花了两周的时间才勉强爬出来,可见该坑之深。

       在这里我们使用了一个现成的Demo,SilverlightTV作为我们的目标文件。SilverlightTV中包含很多文件和文件夹。我们要做的第一件事,就是将所有文件拷贝到一个文件夹中。这一点非常重要,因为考虑到效率问题,Windows Embedded Standard组件中的文件只能包括在同一个文件夹中。

       主要提示:如果将包含子目录的文件夹添加到组件中,组件设计器不会报错,而要等到这个组件加入到Target Designer时,才会报文件找不到的错误,并且在构建好的Image文件中,只会包括文件夹,而不会包括其中的文件。

       不过,新的问题就来了,如果我的文件结构是固定的,并且有相互的依赖关系,把所有文件都放到一个文件夹后,程序无法正常运行该怎么办呢?我们自然有办法,不过现在,还是赶紧将所有文件放在一个文件夹中吧,这个文件夹就是添加Repositories时指定的Source Path文件夹。不过千万记清文件原来所在的文件夹,否则下一步就麻烦了。


       做完这步之后,回到Component Designer中,在Files节点单击右键,在菜单中选择Add – Files in Folder,在稍后弹出的对话框中,选择我们放置源文件的文件夹。经过下面的处理过程之后,文件夹中所有的文件都被加入到组件中了


       不过问题是,所有的文件还被放置在同一个目录中,无法正常执行。这时,我们要通过一个比较繁琐的过程来解决这个问题——修改文件的目的文件夹。在右侧的文件列表中,选中某一个文件,双击,打开文件编辑对话框:


       我们打开的是一个wmv文件,我们只需要修改Destination中的目录结构,%24%是一个转义字符,表示C盘,我们不要去动它。根据我们文件的原始位置填写目的文件的所在目录就可以了。这个工作要花费一段时间,需要点耐心。

       接下来,我们要添加组件的Group Memberships,表示组件在组件目录树中所处的位置。我们在“Group Memberships”节点上右键选择“Add Group Membership”命令。在弹出的对话框中,选择SoftwareàSystemàUser InterfaceàShells,然后选择Shell即可。点击OK,关闭对话框。

       接下来为组件添加依赖关系。依赖关系表明该组件依赖于那些组件,当我们添加了该组件到Target Image中时,在依赖检查时,会将其所依赖的组件也添加到Image中。


       我们选择“Component or Group Dependency”,右键菜单中“Add”-“Component Dependency”,会弹出添加组件依赖对话框。

       我们在“Component dependency source”选择Database,即选择组件数据库中的组件。然后找到SoftwareàSystemàNetworking & Communicationsà ApplicationsàInternet Explorer – Hotfix Q321232,并且确认My Component下选择的是“Depends on the selected component”,然后点击Apply按钮,添加依赖关系。

       这时对话框不会关闭,所以我们还需要添加第二个依赖组件,就是大名鼎鼎的


       好了,到这里,我们的组件就基本完成了,哦,还忘了件事,添加注册表。不过请大家注意的是,并不是每个Silverlight组件都需要添加注册表项,是因为SilverlightTV这个组件中调用了ActiveX,IE中会有安全限制,所以我们才通过修改注册表的方式来规避这个问题。关于IE安全限制的问题,我们后边会专门说明,在这里大家只要了解如何为组件添加注册表项就可以了。


       在Component Designer中选择Registry Data,右键菜单中选择添加注册表项。我们可以点击Key name后边的Browse按钮,在注册表中定位要添加的项。我们要添加的项为:

       HKEY_CURRENT_USER\Software\Microsoft\Internet        Explorer\Main\FeatureControl\FEATURE_LOCALMACHINE_LOCKDOWN

       中的“iexplore.exe”项,值为DWORD,设置为0。

       大家一看就知道这个选项是与IE有关的,至于什么关系,我们先卖个关子,稍后再说。先点击OK,关闭注册表编辑对话框。

       好了,到这里我们支持Silverlight的Shell组件终于编辑完成了。好的,赶紧保存一下吧。不过,我们怎么在Target Designer里使用这个组件呢?

       这就要看下一节的了……


本文转自马宁博客园博客,原文链接:http://www.cnblogs.com/aawolf/archive/2008/08/01/1258029.html,如需转载请自行联系原作者

相关文章
|
14天前
|
监控 关系型数据库 MySQL
PowerShell 脚本编写 :自动化Windows 开发工作流程
PowerShell 脚本编写 :自动化Windows 开发工作流程
17 0
|
24天前
|
Ubuntu Linux Python
如何利用wsl-Ubuntu里conda用来给Windows的PyCharm开发
如何在WSL(Windows Subsystem for Linux)的Ubuntu环境中使用conda虚拟环境来为Windows上的PyCharm开发设置Python解释器。
34 0
|
2月前
|
存储 安全 程序员
Windows任务管理器开发原理与实现
Windows任务管理器开发原理与实现
|
3月前
|
开发者 C# Windows
WPF与游戏开发:当桌面应用遇见游戏梦想——利用Windows Presentation Foundation打造属于你的2D游戏世界,从环境搭建到代码实践全面解析新兴开发路径
【8月更文挑战第31天】随着游戏开发技术的进步,WPF作为.NET Framework的一部分,凭借其图形渲染能力和灵活的UI设计,成为桌面游戏开发的新选择。本文通过技术综述和示例代码,介绍如何利用WPF进行游戏开发。首先确保安装最新版Visual Studio并创建WPF项目。接着,通过XAML设计游戏界面,并在C#中实现游戏逻辑,如玩家控制和障碍物碰撞检测。示例展示了创建基本2D游戏的过程,包括角色移动和碰撞处理。通过本文,WPF开发者可更好地理解并应用游戏开发技术,创造吸引人的桌面游戏。
157 0
|
3月前
|
开发者 iOS开发 C#
Uno Platform 入门超详细指南:从零开始教你打造兼容 Web、Windows、iOS 和 Android 的跨平台应用,轻松掌握 XAML 与 C# 开发技巧,快速上手示例代码助你迈出第一步
【8月更文挑战第31天】Uno Platform 是一个基于 Microsoft .NET 的开源框架,支持使用 C# 和 XAML 构建跨平台应用,适用于 Web(WebAssembly)、Windows、Linux、macOS、iOS 和 Android。它允许开发者共享几乎全部的业务逻辑和 UI 代码,同时保持原生性能。选择 Uno Platform 可以统一开发体验,减少代码重复,降低开发成本。安装时需先配置好 Visual Studio 或 Visual Studio for Mac,并通过 NuGet 或官网下载工具包。
161 0
|
4月前
|
Linux Apache C++
FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt
该文介绍了如何在Windows环境下为FFmpeg集成SRT协议支持库libsrt。首先,需要安装Perl和Nasm,然后编译OpenSSL。接着,下载libsrt源码并使用CMake配置,生成VS工程并编译生成srt.dll和srt.lib。最后,将编译出的库文件和头文件按照特定目录结构放置,并更新环境变量,重新配置启用libsrt的FFmpeg并进行编译安装。该过程有助于优化直播推流的性能,减少卡顿问题。
102 2
FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt
|
5月前
|
Java Nacos 微服务
Spring Cloud微服务在Windows本地开发时禁用Nacos注册中心注册
Spring Cloud微服务在Windows本地开发时禁用Nacos注册中心注册
|
22天前
|
边缘计算 安全 网络安全
|
15天前
|
数据安全/隐私保护 Windows
安装 Windows Server 2019
安装 Windows Server 2019
|
18天前
|
网络协议 Windows
Windows Server 2019 DHCP服务器搭建
Windows Server 2019 DHCP服务器搭建