移动设备应用程序开发入门一:创建用于设备的 Windows 窗体应用程序并打包进行部署...

目标:了解如何使用 Visual C# 创建一个简单的 Hello World 应用程序,该应用程序可在 Pocket PC 上运行。

        了解如何为应用程序创建随后可部署到智能设备上的 .cab 文件。

创建使用 Windows 窗体的设备项目
  1. (Visual C#) 在 Visual Studio 中的“文件”菜单上,指向“新建”,然后单击“项目”。

  2. 在“项目类型”窗格中,展开“Visual C#”,然后单击“智能设备”。

    如果开始并未出现您需要的语言,请展开“其他语言”。此显示由开发设置进行控制。

  3. 在“模板”窗格中单击“智能设备项目”。

  4. (仅适用于 Visual C#)在“位置”框中,确认要用于存储项目文件的位置。

  5. 在“名称”框中,键入“DeviceSample”,然后单击“确定”。

  6. 在“添加新智能设备项目”对话框中,从“目标平台”下拉列表中选择“Pocket PC 2003”,从“.NET Compact Framework 版本”下拉列表中选择“.NET Compact Framework 2.0 版”,单击“模板”窗格中的“设备应用程序”,再单击“确定”。

    Pocket PC 设备的一种表示形式将显示在 Windows 窗体设计器中。

    向窗体添加控件
    1. 将一个“Button”控件从“工具箱”中拖到窗体上。

      如果在集成开发环境 (IDE) 中“工具箱”不可见,请单击“视图”菜单上的“工具箱”。

      如果在“工具箱”中“设备控件”选项卡不可见,请右击“工具箱”,再单击“全部显示”。

    2. 右击“Button”控件,再单击“属性”。

    3. 在“属性”窗口中,键入 Say Hello,然后按 Enter 设置“Text”属性。

      为 Button 控件添加事件处理
      1. 双击窗体上的按钮。

        代码编辑器随即打开,并且光标位于事件处理程序中。

      2. 插入以下 Visual Basic 代码:

        MessageBox.Show("Hello, Pocket pc");

        生成和调试应用程序

        此时,您会发现与桌面项目的不同之处。在设备项目中,通常可以从若干个目标中选择用来运行项目的位置。在此演练中,选择 Pocket PC 仿真程序。如果开发计算机中已经有一个受支持的物理设备,也可以选择该物理设备。

        生成并测试应用程序
        1. 在“调试”菜单上,单击“开始”(或“开始调试”)。

        2. 在“部署”对话框中,选择“Pocket PC 2003 SE 仿真程序”,然后单击“部署”。

          可以在进度栏中查看进度。默认情况下,如果 .NET Compact Framework 尚未存在于某个设备上,则会部署到该设备。

        3. 当应用程序运行于仿真程序上时,点击按钮以确保出现“Hello, World!”。

          安装 CAB 项目

          为解决方案添加智能设备 CAB 项目
          1. 打开现有的智能设备项目,并确保“解决方案资源管理器”可见。

          2. 在“文件”菜单上指向“添加”,然后单击“新建项目”。

            出现“添加新项目”对话框。

          3. 在“项目类型”窗格中,展开“其他项目类型”,再单击“安装和部署”。

          4. 在“模板”窗格中单击“智能设备 CAB 项目”。

            这是唯一可用于智能设备的 CAB 项目类型。其他项目类型仅用于桌面解决方案。

          5. 在“名称”框中,键入 CABProject,然后单击“确定”。

            该 CAB 项目随即添加到解决方案中,并显示在“解决方案资源管理器”中。现在显示“文件系统编辑器”的两个窗格。

            自定义 CAB 项目

            更改产品名称和其他项目属性
            1. 在“解决方案资源管理器”中单击“CABProject”(如果尚未选定)。

            2. 在“视图”菜单上单击“属性窗口”,或打开“属性”窗口。

            3. 在属性网格的“ProductName”字段中,将值更改为“MyProduct”。

              “ProductName”属性的值决定了在文件夹名称和“添加或删除程序”对话框中为应用程序显示的名称。

              • 还可以使用此窗口更改制造商的名称,以及指定操作系统的最低和最高版本。

              • 可以将“OSVersionMin”属性设置为 4.21,以指示您的 Pocket PC 应用程序具有屏幕方向感知功能。但是,将此属性设置为 4.21 会阻止应用程序安装到基于 Windows Mobile 2003 或更早版本的 Pocket PC 上。若要允许在此类设备上进行安装,并通知较新的设备该程序具有屏幕方向感知功能,则必须手动修改 .inf 文件,将“BuildMax”属性设置为下列值之一:

                0xA0000000,指示应用程序支持方形屏幕(240x240 像素)

                0xC0000000,指示应用程序支持屏幕旋转

                - 或 -

                0xE0000000,指示应用程序支持方形屏幕和屏幕旋转。

                有关更多信息,请参见位于 MSDN 上的文章 Developing Screen Orientation-Aware Applications(开发识别屏幕方向的应用程序)。

              • 对于基于 Windows Mobile 2003 SE 及更低版本的 Pocket PC 解决方案,“Compress”属性和“NoUninstall Device Deployment”属性必须为 false。请注意,对于配备了 Compact Framework 2.0 的设备,此选项可以设置为 true。有关更多信息,请参见 “智能设备 Cab 项目”->“属性”窗口。

              • 如果您使用的是 Windows CE 安装程序 DLL,使用此属性网格可以指定文件名和位置。有关 Windows CE 安装程序 DLL 的更多信息,请参见 Pocket PC 或 Smartphone SDK 文档。

              • 注意:把manufacturer填写成英文名,否则会出现“Windows CE CAB 向导遇到了错误。有关更多信息,请参阅输出窗口。”错误。

            更改 CAB 文件的名称并添加身份验证
            1. 在“解决方案资源管理器”中右击“CABProject”,然后单击“属性”。

              出现 CAB 项目的“属性页”对话框。在“输出文件名”框中,将 CAB 文件的名称和路径更改为 Debug\MyApp.cab,然后单击“确定”。

            2. 还可以使用此属性页为项目添加身份验证。身份验证对于 Smartphone 解决方案是必需的,但是在基于 Windows Mobile 2003 SE 及更低版本的 Pocket PC 解决方案上,身份验证不受支持。有关更多信息,请参见设备项目中的安全性。

            为 CAB 项目添加设备项目应用程序
            1. 在“文件系统编辑器”的左窗格中,单击“应用程序文件夹”,以指定在后续步骤中选择的文件将安装到目标设备上的此文件夹中。

              如果看不到“文件系统编辑器”,请在“解决方案资源管理器”中右击 CAB 项目名称,单击“视图”,再单击“文件系统”。

            2. 在 Visual Studio 中的“操作”菜单上指向“添加”,然后单击“项目输出”。

            3. 在“添加项目输出组”对话框中,从“项目”下拉列表中选择您的智能设备项目。

            4. 从输出列表中选择“主输出”,然后单击“确定”。

              为设备项目应用程序创建快捷方式
              1. 在“文件系统编辑器”的右窗格中,选择“<your application project name> 的主输出”。

              2. 在“操作”菜单上单击“创建 <应用程序项目名称> 的主输出的快捷方式”。

                此命令将在“输出”项下面添加一个“快捷方式”项。

              3. 右击该“快捷方式”项,单击“重命名”,然后将该快捷方式重命名为适合于快捷方式的名称。

              添加注册表项
              1. 在“解决方案资源管理器”中单击 CAB 项目。

              2. 在“视图”菜单上指向“编辑器”,然后单击“注册表”。

              3. 在“注册表编辑器”中,右击 HKEY_CURRENT_USER,然后单击“新建项”。

              4. 当“注册表编辑器”中显示“新建项”项时,将其重命名为“SOFTWARE”。

              5. 右击此新项,指向“新建”,然后单击“项”。

              6. 当“注册表编辑器”中显示“新建项”项时,将其重命名为“MyCompany”。

              7. 右击“MyCompany”项,然后单击“属性窗口”。

                “名称”值已更改为“MyCompany”。

              生成和部署 CAB 文件

              生成 CAB 文件
              1. 在“生成”菜单上单击“生成 CABProject”。

                - 或 -

                在“解决方案资源管理器”中右击“CABProject”,再单击“生成”。

              2. 在“文件”菜单上单击“全部保存”。

                Smartphone 解决方案的 CAB 文件在部署到最终用户的设备上之前必须进行数字签名。基于 Windows Mobile 2003 SE 及更低版本的 Pocket PC 解决方案不支持数字签名。有关更多信息,请参见如何:对 CAB 文件进行签名(设备)。

              将 CAB 文件部署到设备上
              1. 在“Windows 资源管理器”中定位到存储此解决方案的文件夹。可以在解决方案的“CABProject\Release”文件夹中找到此 CAB 文件。

              2. 将 CAB 文件复制到使用 ActiveSync 4.0 或更高版本进行连接的设备上。

                当用户在设备上的“资源管理器”中点击此 CAB 文件名时,Windows CE 将解开该 CAB,并将应用程序安装到设备上。

                有关更多信息,请参见 Smartphone 和 Pocket PC SDK 文档。

转载于:https://www.cnblogs.com/Top1/archive/2009/07/02/1515091.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/476261.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

论文阅读笔记(五)【ACL 2021】Answering Ambiguous Questions through Generative Evidence Fusion and Round-Trip P

通过生成性证据融合和往返预测回答模糊问题 关键词&#xff1a; 生成性证据融合&#xff1b; 往返预测&#xff1b; 模糊问题 摘要 一般的开放域QA问题&#xff1a; 在开放域问答中&#xff0c;问题很可能是模棱两可的&#xff0c;因为用户在制定问题时可能不知道相关主题的…

c语言不会可以学好java吗_不会C语言能学Java吗

不会C语言能学Java吗&#xff1f;当然可以&#xff0c;学码思不少小伙伴没有任何代码基础&#xff0c;来这里Java培训学的也非常不错&#xff0c;都获得了理想的就业。现在时代不一样了&#xff0c;编程语言更新换代的速度也很快&#xff0c;很多老程序员都是从C语言入门&#…

ie下滚动条样式设置

项目中需要配置滚动条的样式&#xff0c;故做了如下小程序协助配置&#xff1a;这个是示例这个是示例这个是示例这个是示例这个是示例这个是示例这个是示例这个是示例这个是示例立体滚动条亮边的颜色&#xff1a;滚动条空白部分的颜色&#xff1a;立体滚动条凸出部分的颜色&…

李宏毅机器学习(七)自监督学习(二)BERT奇闻轶事

WHY does BERT work&#xff1f; BERT会考虑上下文&#xff01; 进行Word Embedding&#xff01;将一个单词表示成向量&#xff0c;比如苹果单词中的“果”和苹果公司中的“果”&#xff0c;在经过Embedding后虽然同样是同一个词&#xff0c;但是由于上下文不同&#xff0c;所…

vue 组件第一次不渲染问题_vue使用组件不渲染 只有代码变了才渲染

这个组件是一个chartimport { Line } from vue-chartjs;export default {extends: Line,mounted () {this.renderChart({labels: [January, February, March, April, May, June, July],datasets: [{label: success,backgroundColor: #FC2525,fill: transparent,data: [40, 39, …

LeetCode 747. 至少是其他数字两倍的最大数

1. 题目 在一个给定的数组nums中&#xff0c;总是存在一个最大元素 。 查找数组中的最大元素是否至少是数组中每个其他数字的两倍。 如果是&#xff0c;则返回最大元素的索引&#xff0c;否则返回-1。 示例 1: 输入: nums [3, 6, 1, 0] 输出: 1 解释: 6是最大的整数, 对于…

主从表主键外键

A表的主键在B表中充当外键&#xff0c;谁是主表&#xff0c;谁是子表&#xff1f; A为主表B为从表 个人认为&#xff1a; 外键是约束的一种。不存在主从关系&#xff0c;只存在引用关系&#xff0c;如部门表与员工表。每个员工都属于某个部门&#xff0c;必须与某个部门资料对应…

简单循迹小车实验心得_红外自动循迹小车实验报告

红外自动循迹小车实验报告 1摘要 本实验完成采用红外反射式传感器的自寻迹小车的设计与实现。采用与白色地面色差很大的黑色 路线引导小车按照既定路线前进&#xff0c;在意外偏离引导线的情况下自动回位&#xff0c;并能显示小车停止的时间。 本设计采用单片机STC89C51作为小车…

李宏毅机器学习(七)GPT的野望

前情提要 前面我们有说&#xff0c;BERT做的是什么&#xff1f; Bert做的是填空题&#xff01; GPT做的是什么&#xff1f; 做的是预测接下来要出现的Token是什么&#xff1f; 它里面的结构有点像Transformer中的Decoder GPT最有名的就是生成了一个关于独角兽的假新闻&#xf…

LeetCode 885. 螺旋矩阵 III

1. 题目 在 R 行 C 列的矩阵上&#xff0c;我们从 (r0, c0) 面朝东面开始 这里&#xff0c;网格的西北角位于第一行第一列&#xff0c;网格的东南角位于最后一行最后一列。 现在&#xff0c;我们以顺时针按螺旋状行走&#xff0c;访问此网格中的每个位置。 每当我们移动到网…

忆阻器的matlab建模_忆阻器Simulink建模和图形用户界面设计.PDF

忆阻器Simulink建模和图形用户界面设计( )第 卷第 期 西 南 大 学 学报 自然科学版 年 月33 9 2011 9( )Vol.33 No.9 JournalofSouthwestUniversit NaturalScienceEdition Se. 2011y p文章编号: ( )1673 9868201109 0050 07忆阻器Simulink建模和图形用户界面设计①胡柏林, 王丽…

李宏毅机器学习(八)自编码器(Auto-encoder)

前情提要 什么自监督学习&#xff1f; 做不需要标注资料的任务&#xff0c;比如做填空题&#xff0c;比如预测下一个任务&#xff01; 这个时候我们只需要对在自监督中训练的模型进行fine-tune就可以用在下游任务中了&#xff01; 但是在不需要标注的数据之前呢&#xff0c;在…

LeetCode 406. 根据身高重建队列(排序)

1. 题目 假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示&#xff0c;其中h是这个人的身高&#xff0c;k是排在这个人前面且身高大于或等于h的人数。 编写一个算法来重建这个队列。 注意&#xff1a; 总人数少于1100人。示例 输入: [[7,0], [4,4], [7,1]…

sql2000 版本号

SQL Server 2000 原始版本 8.00.194 RTM Database Components SP1 8.00.384 SP1 Database Components SP2 8.00.534 SP2 Database Components SP3、SP3a 或 MSDE 2000 Release A 8.00.760 SP3 Database Components SP4 8.00.2039 SP4.转载于:https:/…

iphone和mac互传文件_在mac和iphone之间传文件夹那么难吗

一直听说苹果几件套多么好用&#xff0c;工作生活资料文件可以多无缝衔接等等&#xff0c;买了手机后几乎没什么时间研究&#xff0c;对于苹果的生态圈还是有些陌生和不习惯&#xff0c;目前来说我感觉最方便的一个功能是隔空传送&#xff0c;比如在家里&#xff0c;大涛哥要给…

LeetCode LCP 11. 期望个数统计

1. 题目 某互联网公司一年一度的春招开始了&#xff0c;一共有 n 名面试者入选。 每名面试者都会提交一份简历&#xff0c;公司会根据提供的简历资料产生一个预估的能力值&#xff0c;数值越大代表越有可能通过面试。 小 A 和小 B 负责审核面试者&#xff0c;他们均有所有面试…

李宏毅机器学习(七)Bert and its family

技术前瞻 在预训练模型上训练Bert&#xff0c;并在我们的数据上fine-tune所需要的模型&#xff01; 就像学习英文一样&#xff01; 应该是通读英文文章后再去做题&#xff0c;而不是先做题再读懂文章&#xff01; Pre-train Model Embedding 刚开始是 Word2Vertor&#xff0…

利用SharePoint Designer开发可循环工作流

介绍 大家都知道SharePoint工作流有两种开发(设计)方式:通过SharePoint Designer和Visual Studio. l 使用Visual Studio,开发人员可以通过编码的方式灵活的开发SharePoint工作流. l 使用SharePoint Designer,网站管理人员可以基于定义和规则设计SharePoint工作流,无需编码. 使用…

跨部门不配合工作_作为管理者,如何解决跨部门成员互不配合的情况?

原标题&#xff1a;作为管理者&#xff0c;如何解决跨部门成员互不配合的情况&#xff1f;有过类似的情况&#xff0c;但已经解决&#xff0c;分享一下我的经验&#xff1a;1.管理者要以身作则&#xff0c;既然答应了就帮对方到底。上司在平时&#xff0c;不应该有“小农”思想…

李宏毅机器学习(八)ELMo、BERT、GPT、XLNet、MASS、BART、UniLM、ELECTRA、others

怎么得到这个pre-train好的模型呢&#xff1f; Pre-training by Translation&#xff08;翻译&#xff09; Context Vector&#xff08;CoVe&#xff09;&#xff1a; Embedding的words必须要考虑上下文&#xff01; 有一个方法是用基于Translation的Model&#xff01; 就是用…