【IT168 Tech.Ed 2009 特别报道】精英聚首,践出真知!11月5日-11月7日,IT168与您一道共享IT技术盛会微软Tech.Ed 2009(专题链接:http://app.focus.it168.com/teched2009/index.html)。更多精彩,尽在IT168!
走进微软动手实验室,带您进行Windows 7平台下的应用程序兼容性测试。由于Windows 7 在安全模型上做了众多改变,导致原先在XP上运行的程序,迁移到Windows 7上存在不兼容的问题。在本节中将介绍这些兼容性问题及产生的原因。本动手实验的内容,让学员亲自了解windows7中的兼容性测试工具和如何解决在Windows 7下的兼容性问题。
微软动手实验室现场
1.Windows7兼容测试工具对应用程序进行测试
通过该小节的动手实验,了解如何用ACT5.5来进行LUA权限测试发现应用程序会出现的兼容问题。
任务 | 步骤 |
1. 使用Internet Explorer Compatibility Test Tool进行测试 | 1. 打开Internet Explorer Compatibility Test Tool测试工具,测试网页在IE8中的兼容问题 |
2. Setup Analysis Tool | 1. 使用Setup Analysis Tool工具对安装文件进行测试 |
3. Standard User Analyzer | 1. 使用Standard User Analyzer对LUA权限问题进行测试 |
4. 使用Application Verifier | 1. Application Verifier生成测试报告 |
2. Visual Studio 2008中进行对应用程序的UAC设置
通过该小结的动手实验,我们能够了解到通过Manifest进行UAC权限设置,学会在Visual Studio中进行编写Manifest清单文件。注意:在Demo中演示的是VB项目,生成Manifest的方式和VC#略有不同,但是Manifest文件的格式和用途是一样的,本实验基于C#
任务 | 步骤 |
1.Visual Studio 2008 中进行对应用程序的UAC设置 | 1. 打开Begin项目(C:\Course\HOL\使用Manifest\Begin) |
2. 按F5执行,没有任何问题,如右图: | |
3. 关闭程序,到目录C:\Course\HOL\使用Manifest\End\WindowsFormsApplication1\bin\Debug,我们看到WindowsFormsApplication1.exe的图标上没有盾牌,刚刚执行时,也没有提示权限提升。 | |
4. 在项目上点击右键,选择Add->New Item… | |
5. 找到项目“Application Manifest File”,名字为:app.manifest,点击”Add”按钮。 | |
6. 将下面这段代码:<requestedExecutionLevel level="asInvoker" uiAccess="false" />,替换成 <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> | |
7. 在解决方案上点击右键,选择“Rebuild Solution” | |
8. 重新回到目录:C:\Course\HOL\使用Manifest\End\WindowsFormsApplication1\bin\Debug,我们会看到WindowsFormsApplication1和刚刚的显著不同,就是程序图标上多了一个盾牌。 | |
9. 双击WindowsFormsApplication1,会看到UAC提示 | |
10. 点击按钮“是”,程序正常执行。 |
任务 | 步骤 |
2.为应用程序添加使用Shield图标 (此动手实验会调用Win32 API,在按钮上增加盾牌图标) | 1. 打开Begin项目(C:\Course\HOL\使用Shield图标\Begin |
2. 按F5执行,看到执行窗体,这个窗体上有一个按钮,并且按钮上没有盾牌小图标。 | |
3. 关闭程序,在Form1.cs上点击右键,选择View Code | |
4. 在From1.cs中,添加: using System.Runtime.InteropServices; using System.Diagnostics; | |
5. 在Form1函数声明后,添加如下代码: | |
6. 双击Form1.cs,回到设计视图,然后双击Form1窗体,生成Form1_Load事件,填写事件代码如右边所示 | |
7. 在Shield Button上双击,生成button1_Click事件,填写代码如右边所示,请注意,在此代码中我们调用的是动手实验【使用Manifest】的End中编译好的exe,请首先确认此exe是存在的。 | |
8. 按F5,运行程序,如右图: | |
9. 当点击按钮时,会看到UAC提示,请注意,这个提示是由于本身调用的程序需要权限提升。我们的代码仅仅是给button增加了盾牌图表。 | |
10. 点击按钮“是”,实验完成。 |