技术开发 频道

TechED2009:解决Windows 7的兼容性问题

  【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.    点击按钮“是”,实验完成。
 

 


 

0
相关文章