欢迎光临 Enjoy IT (ITECN.NET) 登录 | 注册 | 帮助

UU'S T&T

TIPS AND TROUBLESHOOTS FOR WINDOWS

公告

  • 本Blog站点上的任何言论仅代表个人观点,与其所在的公司没有任何关系。本Blog站点的内容是按原样提供的,作者与其公司并不对其提供任何种类的担保。此外还否认所有暗示的保证,包括但不局限于在任何试销性或某一特定用途的适用性方面的暗示保证。由于本站内容的使用或性能表现带来的全部风险将由使用者自己承担。任何由于使用或无法使用本站内容而带来的损失(包括但不局限于商业利润、业务中断、业务信息或其他财产上的损失),即使在 本站作者曾经被提醒可能出现这些损失的情况下,本站 及其作者或涉及内容创建的任何其他人等对任何上述的损失概不负责。
    ·本BLOG的内容均属技术交流之用,本人对所发表的文章、图片、随笔保留一切权利。
    如文章、图片、随笔转载请注明:
    作者姓名:尤扬
    文章来源URL:
    http://blogs.itecn.net/blogs/youyang
    同时请通过EMAIL通知本人:
    youyang1983◎hotmail.com
    ·如果通过EMAIL与我联系,并最终解决的问题,我将发表于本BLOG进行技术分享,如果涉及隐私或有特殊要求请于EMAIL中说明!
    本人联系方式:
    MSN ID:youyang1983◎hotmail.com(常用)
    QQ ID:85836514
    EMAIL:v-yayou@microsoft.com
    ·技术就是无条件共享


    2005年7月 Microsoft MVP for Windows-Shell\User
    2006年7月 Microsoft MVP for Windows-Shell\User
    2007年7月 Microsoft MVP for Windows-Shell\User

Microsoft

朋友的网站

Vista Guided Help 自定制可行性分析[for LynnQi version]

[版权声明:ITECN保留本篇文章之文字,图片,注释,版式的一切权利,转载请明确表明文章来自ITECN作者:尤扬 MVP For Windows Shell/User]

Windows Vista,原来记得在很多Sessions中都会提到的一个很Cool的功能就是Guided Help,那么Guided Help能否在Windows XP这样的平台上面运作呢?可以,而且昨天看到李子的文章,想起很早在微软知识库中看到的带有Guided Help的文章,不禁对Guided Help产生了浓厚兴趣,准备好好研究一番。

这个Link就是目前所有带有Guided Help的KBA:

http://support.microsoft.com/search/default.aspx?query=%22Guided+Help%22&catalog=LCID%3D1033&spid=&qryWt=&mode=r&cus=False

那么这篇文章,我们就用:

How to re-create the Show Desktop icon on the Quick Launch bar

作为基础开始对Guided Help的研究。

首先,从KBA中下载Guided Help文件-190355.exe

其实这个190355.exe文件是一个压缩包,我们用解压软件可以得到里面具体文件,内容如图所示:

简单的分析一下,其中的文件:

  • _sfx_manifest_

用记事本打开:

[Options]
Command="%_SFX_CAB_EXE_PATH%\Downloadexe.exe" 190355.xml "/common/fetchacw.aspx?file=cf;%0;acwresource" 

从语法上面来看,应该是解压包的命令参数,也就是当文件解压完毕之后,需要执行的命令,参考上面的内容,在命令行中应该是这样调用的:

C:\Downloads\190355>Downloadexe.exe 190355.xml /common/fetchacw.aspx?file=cf;%0;acwresource

那么毫无疑问,Downloadexe.exe就是Guided Help功能的主驱动引擎。而感觉190355.xml这种XML数据文件应该是主驱动引擎的参数配置文件,

那么我们看看具体的Downloadexe.exe的参数是怎么样的:

和刚刚猜想的没错,Downloadexe.exe需要两个参数,一个脚本文件名,一个资源文件URL。后一个参数可选。

经过排查,后面这个

/common/fetchacw.aspx?file=cf;%0;acwresource

参数,其实它的完整路径应该是:

http://support.microsoft.com/common/fetchacw.aspx?file=cf;%0;acwresource

也是一个XML文件。需要说明的是,这个资源文件对Guided Help来说都是通用的,所以可以忽略研究。

其实,Guided Help的真正乾坤都是在那个Script File里面,也就是本例的190355.xml中。

用记事本或者IE我们都可以看到里面的内容,而记事本可以直接更改。

大家可以自己看看,这里写几个很容易看明白的地方:

<?xml version="1.0" encoding="utf-8"?> <automatedTask xmlns="http://schemas.microsoft.com/maml/2004/10" contentType="ACWProcedure"
showWelcome="true" showFinished="false" undoPossible="false"
undoExplanation="To remove or to re-create the Show Desktop icon on the Quick launch toolbar, run Guided Help again and then select the appropriate option."
address="DoItOnly" automatedTaskId="52cdaf5c-9a97-4c7a-ab5e-74359acdbcc9" > <title>Re-create or remove the Show Desktop icon</title> <kbInfo> <kbNumber>190355</kbNumber> <kbTitle>How to re-create the Show Desktop icon on the Quick Launch bar</kbTitle> <kbURL>http://support.microsoft.com/?kbid=190355</kbURL> </kbInfo>

比如一些通过True或Flase控制的属性,showWelcome。

KB的标题,KBID,URL等。

<functionStep id="step128"> <extensibleAction action="Microsoft.Support.Functions#fileCopy" actionId="a5"> <parameter name="path" value="%DownloadedFiles%\Show Desktop.scf" /> <parameter name="newpath" value="%userprofile%\Application Data\Microsoft\Internet Explorer\Quick Launch\Show Desktop.scf" /> <parameter name="ifCopyFails" value="returnError" /> </extensibleAction> <description> <para>Copying files.</para> </description> <onFailure reason="AccessDenied" actionIdref="a5"> <stopStep stopReason="failure" id="step129"> <para>Guided Help could not re-create the Show Desktop icon because you do not have permission to write to the Quick Launch folder. Ask your computer administrator to log on to Windows, and then to grant your user account full control of the Quick Launch folder. Then, log on to Windows and run Guided Help again. If your issue is still not resolved, click <ui>Help and Support</ui> on the Start menu for more assistance options.</para> </stopStep> </onFailure> <onFailure reason="defaultReason" actionIdref="a5"> <stopStep stopReason="failure" id="step138"> <para>Guided Help could not re-create the Show Desktop icon because of an unknown error. Click <ui>Help and Support</ui> on the Start menu for more assistance options.</para> </stopStep> </onFailure> </functionStep>

看一下这个分支

<extensibleAction action="Microsoft.Support.Functions#fileCopy" actionId="a5">
       
<parameter name="path" value="%DownloadedFiles%\Show Desktop.scf" />
       
<parameter name="newpath" value="%userprofile%\Application Data\Microsoft\Internet Explorer\Quick Launch\Show Desktop.scf" />
       
<parameter name="ifCopyFails" value="returnError" />
</extensibleAction>


我想看到这里大家都会明白,这个配置要告诉驱动引擎作什么了-对,文件拷贝。

关于安全和可行性

看了上面的介绍,很多朋友都会觉得,那么Guided Help如此容易编辑和修改,而Guided Help又那么强大,这个功能对我们来说岂不如病毒一样危险,而且是谁都可以玩的病毒?

开始我也这么考虑,但是后来,我发现微软是采用安全编录的形式来保证原始的文件不被更改,如果更改了原始的XML配置参数文件,那么就无法满足安全编录的加密算法,驱动引擎也就不会再执行下去了。

大家看一下:

 

看到这里,大家一定感觉我在开了一个很大的玩笑,说了半天,除了微软,目前我们还是没有办法自定义Guided Help.

这就需要说说Guided Help的未来了。

首先,我觉得微软应该部分开放Guided Help的SDK,起码对遵守NDA的MVPs应该开放,因为Guided Help在社区一定可以发挥无穷的威力。

其次,关于Guided Help的XML配置文件,我感觉微软内部一定有InfoPath的模板,否则靠手工写,简直很痛苦。

最后,作一个畅想,如果Windows XP 家族会迎来Service Pack3的话,Guided Help就一定会在其中,这样我的叶子MM在作HelpDesk的时候,就不会向我的抱怨,你的方法太复杂,都是破东西了....

Posted: 2006年8月3日 1:40 作者 youyang

评论

尚无任何评论

禁止匿名发表评论