<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://community.studyez.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>zhaoyang0618</title><link>http://community.studyez.com/blogs/zhaoyang0618/default.aspx</link><description>数学 计算机编程</description><dc:language /><generator>CommunityServer 2007 SP1 (Debug Build: 20510.895)</generator><item><title>Vista下MoveFileEx, CopyFile函数的问题</title><link>http://community.studyez.com/blogs/zhaoyang0618/archive/2008/03/28/vista-movefileex-copyfile.aspx</link><pubDate>Fri, 28 Mar 2008 12:35:00 GMT</pubDate><guid isPermaLink="false">7b76beae-6234-4d72-a620-43d6f17cfae8:68185</guid><dc:creator>zhaoyang0618</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.studyez.com/blogs/zhaoyang0618/rsscomments.aspx?PostID=68185</wfw:commentRss><comments>http://community.studyez.com/blogs/zhaoyang0618/archive/2008/03/28/vista-movefileex-copyfile.aspx#comments</comments><description>&lt;p&gt;由于Vista的用户权限管理与以前的Windows相差比较大, 我们发现许多函数执行结果会有一些差异, 今天我们遇上了这样一个问题: 我们使用ActiveX控件从网络上下载了一个文件存放在Temp文件夹里面, 然后使用MoveFileEx移到当前用户AppData文件夹里面, 结果发现函数返回值是成功的, 原来的文件也已经被删除, 可是目标文件怎么也找不到. 对于CopyFile也有同样的现象. 最后我们的解决方案是把数据放在Temp文件夹, 也就是实际上没有找到原因所在. &lt;/p&gt;
&lt;p&gt;我们也写了简单的程序完成类似的MoveFileEx功能, 却发现没有任何问题, 非常怪异.&lt;/p&gt;&lt;img src="http://community.studyez.com/aggbug.aspx?PostID=68185" width="1" height="1"&gt;</description><category domain="http://community.studyez.com/blogs/zhaoyang0618/archive/tags/_A18B977B3A67167F0B7A_/default.aspx">计算机编程</category></item><item><title>制作科研Slide的规范建议</title><link>http://community.studyez.com/blogs/zhaoyang0618/archive/2007/12/12/slide.aspx</link><pubDate>Wed, 12 Dec 2007 10:20:00 GMT</pubDate><guid isPermaLink="false">7b76beae-6234-4d72-a620-43d6f17cfae8:61004</guid><dc:creator>zhaoyang0618</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.studyez.com/blogs/zhaoyang0618/rsscomments.aspx?PostID=61004</wfw:commentRss><comments>http://community.studyez.com/blogs/zhaoyang0618/archive/2007/12/12/slide.aspx#comments</comments><description>&lt;h2&gt;制作科研Slide的规范建议&lt;/h2&gt;
&lt;p&gt;(TeX/LaTeX制作幻灯片)&lt;/p&gt;
&lt;h3&gt;在页面上放什么?&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;一个内容太少的页面总比内容太多的页面好 &lt;/li&gt;
&lt;li&gt;不要假定听众中的所有人都是这方面的专家。(记住无知听众准则) 即使听你讲的人应 该是专家，他们也可能是最近才听说你认为应该很早就知道的内容。你永远应当预留 出时间对那些专业的词汇做出解释。 &lt;/li&gt;
&lt;li&gt;永远不要把你不准备在演讲中谈到的内容放到页面中，不要给大家造成你要谈论的主 题非常复杂的印象。但是你可以解释一些不在页面中列出来的内容。 &lt;/li&gt;
&lt;li&gt;保持简单。一般来说，你的听众用来看一张幻灯片的时间不会超过50秒。他们可能来 不及来领会那些长句子和复杂的公式。 &lt;/li&gt;&lt;/ol&gt;
&lt;h3&gt;对标题的建议&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;每个页面都要放置一个标题。对那些不能抓住页面细节的听众来说，看标题能使之知 道页面的内容。 &lt;/li&gt;
&lt;li&gt;标题要确确实实说清楚一件事情。不要用让人无法理解的神秘总结做标题，除非听众能够完 全理解页面的内容。 &lt;/li&gt;
&lt;li&gt;理想情况下，前后标题本身要构成完整叙述。 &lt;/li&gt;
&lt;li&gt;英语中大小写前后要一直。或者所有的标题首字母都大写，或者不。不管如何，整篇 文档的标题要大写。 &lt;/li&gt;&lt;/ol&gt;
&lt;h3&gt;对正文文本的建议&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;永远不要为了放置更多的内容而选择更小的字体。 &lt;/li&gt;
&lt;li&gt;应尽量选用列表项(enumerate,itemize),不要用长句子。 &lt;/li&gt;
&lt;li&gt;不要用连字符分割单词。如果确实需要，使用命令&amp;quot;\-&amp;quot;手工分割 &lt;/li&gt;
&lt;li&gt;手工换行，不要依赖程序的自动换行。在有逻辑停顿的地方换行。 &lt;/li&gt;
&lt;li&gt;图表中的文字和数字要和普通文本同样大小。坐标轴上不可分辨的数字往往使图表表 达的信息减半。 &lt;/li&gt;&lt;/ol&gt;
&lt;h3&gt;对图形的建议&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;如果可能，每一页都尽量放一个图形。可视的图形可以帮听众很多忙。 &lt;/li&gt;
&lt;li&gt;图形应该跟文本有同样的排版参数。比如:在图形中的文字应该跟正文用同样的字体。 图形中小点应该跟正文中的点一样大，线的宽度也应该一样。 &lt;/li&gt;
&lt;li&gt;当使用位图的时候，比如照片，可以会比其它文本色彩更丰富；而矢量图应该和正文 遵守同样的色彩逻辑。(比如，黑色代表正文，红色表示加亮，绿色代表例子，蓝色代 表结构) &lt;/li&gt;
&lt;li&gt;同文本一样，你应该解释图表中出现的所有内容。不管对演讲主题来说是否重要，一 些不能解释的细节往往会使听众迷惑不解。当从论文或者别的地方拷贝图形的时候一 定要注意，因为那里面可能包含你无法解释的内容。 &lt;/li&gt;&lt;/ol&gt;
&lt;h3&gt;对色彩的建议&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;尽量少用颜色。在模板的定义中已经用了比较多的颜色。如果用比较多的色彩，应当 有足够的理由。 &lt;/li&gt;
&lt;li&gt;在白背景下使用较亮的色彩时要小心，特别是绿色。在你的监视器上看起来不错的东 西在你投影上效果可能完全不同。当你在亮背景下使用前景色时，一定要用比较暗的。 &lt;/li&gt;
&lt;li&gt;背景的阴影和渐变在降低易读性的同时并不会增加任何信息。不要因为好看而增加这 种效果。 &lt;/li&gt;
&lt;li&gt;反色视觉效果(亮文本黑背景)在光线比较足的环境下放映时会出现问题，而且打印和 复印时都不方便，应当少用。 &lt;/li&gt;&lt;/ol&gt;
&lt;h3&gt;对动画和特殊效果的建议&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;选用动画来演示动态的系统。 &lt;/li&gt;
&lt;li&gt;不要仅仅为了吸引听众而使用动画。这往往会分散听众对原本主题的注意力。 &lt;/li&gt;
&lt;li&gt;尽量不要使用类似&amp;quot;消融&amp;quot;等分散注意力的换页效果。除非你有好的理由要用它，即使 这样也要少用。 &lt;/li&gt;&lt;/ol&gt;&lt;img src="http://community.studyez.com/aggbug.aspx?PostID=61004" width="1" height="1"&gt;</description><category domain="http://community.studyez.com/blogs/zhaoyang0618/archive/tags/_7065665B63658765_/default.aspx">数学散文</category></item><item><title>数学的承诺</title><link>http://community.studyez.com/blogs/zhaoyang0618/archive/2007/11/10/58961.aspx</link><pubDate>Sat, 10 Nov 2007 07:39:00 GMT</pubDate><guid isPermaLink="false">7b76beae-6234-4d72-a620-43d6f17cfae8:58961</guid><dc:creator>zhaoyang0618</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.studyez.com/blogs/zhaoyang0618/rsscomments.aspx?PostID=58961</wfw:commentRss><comments>http://community.studyez.com/blogs/zhaoyang0618/archive/2007/11/10/58961.aspx#comments</comments><description>&lt;p&gt;&amp;nbsp; 1885年2月7日，科尼斯堡大学最庄严的大厅里举行公开的晋级典礼仪式，希尔伯特将被授予哲学博士学位。最后的宣誓仪式由校长主持：&lt;br /&gt;&lt;span style="font-size:14pt;line-height:100%;"&gt;&lt;span style="color:red;"&gt;“我庄严的要你回答，宣誓是否能使你用真诚的良心承担如下的许诺和保证：你将勇敢的去捍卫真正的科学，将其开拓，为其添彩；既不为厚利所驱，亦不为虚名所赶，只求上帝真理的神辉普照大地，发扬光大。”&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;或许这个也是德国数学如此强大的原因之一吧!&amp;nbsp;&lt;/p&gt;&lt;img src="http://community.studyez.com/aggbug.aspx?PostID=58961" width="1" height="1"&gt;</description><category domain="http://community.studyez.com/blogs/zhaoyang0618/archive/tags/_7065665B63658765_/default.aspx">数学散文</category></item><item><title>assert使用的一个注意点</title><link>http://community.studyez.com/blogs/zhaoyang0618/archive/2007/08/11/assert.aspx</link><pubDate>Sat, 11 Aug 2007 06:41:00 GMT</pubDate><guid isPermaLink="false">7b76beae-6234-4d72-a620-43d6f17cfae8:55898</guid><dc:creator>zhaoyang0618</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.studyez.com/blogs/zhaoyang0618/rsscomments.aspx?PostID=55898</wfw:commentRss><comments>http://community.studyez.com/blogs/zhaoyang0618/archive/2007/08/11/assert.aspx#comments</comments><description>&lt;p&gt;在C++程序中使用断言是一个良好编程习惯, 但是使用assert的时候有一点需要注意, assert或者ASSERT在VC++中是以宏的方式实现的 注意到它的定义,它只有在DEBUG模式下才起作用, 我们使用断言的时候, 断言中应该只包含判断, 而不应该有其他行为. 这一次我们程序开发中就出现了这样一个问题: 程序在DEBUG下执行没有任何问题, 可是在Release下执行的时候却总是出错, 后来发现原来我们有一个初始化函数放在断言里面执行了, 既有一个函数Init, 返回的是布尔值, 结果我们直接这样使用断言了assert(Init()), 这在Release下面根本就不会出现Init了.自然会出错.&lt;/p&gt;&lt;img src="http://community.studyez.com/aggbug.aspx?PostID=55898" width="1" height="1"&gt;</description><category domain="http://community.studyez.com/blogs/zhaoyang0618/archive/tags/_A18B977B3A67167F0B7A_/default.aspx">计算机编程</category><category domain="http://community.studyez.com/blogs/zhaoyang0618/archive/tags/MFC_2F00_VC/default.aspx">MFC/VC</category></item><item><title>Applications=Code+Markup 读书笔记3 第一章 The Application And The Window (2)</title><link>http://community.studyez.com/blogs/zhaoyang0618/archive/2007/08/04/applications-code-markup-3-the-application-and-the-window-2.aspx</link><pubDate>Sat, 04 Aug 2007 03:40:00 GMT</pubDate><guid isPermaLink="false">7b76beae-6234-4d72-a620-43d6f17cfae8:55377</guid><dc:creator>zhaoyang0618</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.studyez.com/blogs/zhaoyang0618/rsscomments.aspx?PostID=55377</wfw:commentRss><comments>http://community.studyez.com/blogs/zhaoyang0618/archive/2007/08/04/applications-code-markup-3-the-application-and-the-window-2.aspx#comments</comments><description>&lt;p&gt;&amp;nbsp;前面一节主要是讨论Window, 这一节讨论Application. 一个应用程序只能有一个Application实例 . Application中有几个事件非常有用. OnStartUp(StartUp事件)在调用了Application的Run方法之后马上执行, 而OnExit(Exit事件)方法是在Run方法返回的时候执行, 这两个方法非常适合用于初始化和释放资源.&lt;/p&gt;&lt;p&gt;&amp;nbsp;OnSessionEnding方法用于处理SessionEnding事件, 在关闭Windows或者关机的时候激发该消息,&amp;nbsp; 该消息中有一个参数SessionEndingCancelEventArgs, 其中有一个属性Cancel, 如果设置该属性为false, 可以阻止WIndows关闭. 这个消息只有在Windows Application模式下编译才能起作用. SessionEndingCancelEventArgs中有一个属性ReasonSessionEnding表明目前是在注销用户还是在关机. &lt;br /&gt;&lt;/p&gt;&lt;table cellpadding="5" cellspacing="0"&gt;&lt;tr&gt;
&lt;td class="docTableCell" align="left"&gt;
&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="docTableCell" align="left"&gt;
&lt;p class="docText"&gt;
&lt;/p&gt;&lt;div class="docText"&gt;&lt;pre&gt;/----------------------------------------------&lt;br /&gt;// InheritTheApp.cs (c) 2006 by Charles Petzold&lt;br /&gt;//----------------------------------------------&lt;br /&gt;using System;&lt;br /&gt;using System.Windows;&lt;br /&gt;using System.Windows.Input;&lt;br /&gt;&lt;br /&gt;namespace Petzold.InheritTheApp&lt;br /&gt;{&lt;br /&gt;    class InheritTheApp : Application&lt;br /&gt;    {&lt;br /&gt;        [STAThread]&lt;br /&gt;        public static void Main()&lt;br /&gt;        {&lt;br /&gt;            InheritTheApp app = new InheritTheApp();&lt;br /&gt;            app.Run();&lt;br /&gt;        }&lt;br /&gt;        protected override void OnStartup&lt;br /&gt;&lt;img src="http://community.studyez.com/controlpanel/blogs/images/ccc.gif" alt="" align="left" border="0" height="9" width="14" /&gt;(StartupEventArgs args)&lt;br /&gt;        {&lt;br /&gt;            base.OnStartup(args);&lt;br /&gt;&lt;br /&gt;            Window win = new Window();&lt;br /&gt;            win.Title = &amp;quot;Inherit the App&amp;quot;;&lt;br /&gt;            win.Show();&lt;br /&gt;        }&lt;br /&gt;        protected override void OnSessionEnding&lt;br /&gt;&lt;img src="http://community.studyez.com/controlpanel/blogs/images/ccc.gif" alt="" align="left" border="0" height="9" width="14" /&gt;(SessionEndingCancelEventArgs args)&lt;br /&gt;        {&lt;br /&gt;            base.OnSessionEnding(args);&lt;br /&gt;&lt;br /&gt;            MessageBoxResult result =&lt;br /&gt;                MessageBox.Show(&amp;quot;Do you want to&lt;img src="http://community.studyez.com/controlpanel/blogs/images/ccc.gif" alt="" align="left" border="0" height="9" width="14" /&gt; save your data?&amp;quot;,&lt;br /&gt;                                MainWindow.Title,&lt;br /&gt;&lt;img src="http://community.studyez.com/controlpanel/blogs/images/ccc.gif" alt="" align="left" border="0" height="9" width="14" /&gt; MessageBoxButton.YesNoCancel,&lt;br /&gt;                                MessageBoxImage&lt;br /&gt;&lt;img src="http://community.studyez.com/controlpanel/blogs/images/ccc.gif" alt="" align="left" border="0" height="9" width="14" /&gt;.Question, MessageBoxResult.Yes);&lt;br /&gt;&lt;br /&gt;            args.Cancel = (result ==&lt;img src="http://community.studyez.com/controlpanel/blogs/images/ccc.gif" alt="" align="left" border="0" height="9" width="14" /&gt; MessageBoxResult.Cancel);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;我们可以从命令行启动程序, 要接受命令行中的参数, 需要修改Main如下:&lt;br /&gt;public static void Main(string[] args)&lt;br /&gt;这些命令行中的参数还可以在OnStartUp的参数StartupEventArgs的Args属性中访问到.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://community.studyez.com/aggbug.aspx?PostID=55377" width="1" height="1"&gt;</description><category domain="http://community.studyez.com/blogs/zhaoyang0618/archive/tags/_A18B977B3A67167F0B7A_/default.aspx">计算机编程</category><category domain="http://community.studyez.com/blogs/zhaoyang0618/archive/tags/.Net3.0_005FD153_/default.aspx">.Net3.0开发</category><category domain="http://community.studyez.com/blogs/zhaoyang0618/archive/tags/Applications_3D00_Code_2B00_Markup/default.aspx">Applications=Code+Markup</category><category domain="http://community.studyez.com/blogs/zhaoyang0618/archive/tags/WPF/default.aspx">WPF</category></item><item><title>转载: 破解E-Learning的迷局之三 教育应用</title><link>http://community.studyez.com/blogs/zhaoyang0618/archive/2007/07/21/b.aspx</link><pubDate>Sat, 21 Jul 2007 10:16:00 GMT</pubDate><guid isPermaLink="false">7b76beae-6234-4d72-a620-43d6f17cfae8:53962</guid><dc:creator>zhaoyang0618</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;作者: 秦宇 &amp;nbsp;&amp;nbsp; 来源: 在线教育资讯&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;　&lt;a target="_self"&gt;&lt;u&gt;&lt;strong&gt; e-Learning&lt;/strong&gt; &lt;/u&gt;&lt;/a&gt;在&lt;a target="_self"&gt;&lt;u&gt;&lt;strong&gt; 教育&lt;/strong&gt; &lt;/u&gt;&lt;/a&gt;领域的应用方式主要有两种：第一种称为辅助式，即将e-Learning做为一种辅助传统&lt;a target="_self"&gt;&lt;u&gt;&lt;strong&gt; 教学&lt;/strong&gt; &lt;/u&gt;&lt;/a&gt;的手段加以应用，例如：学校利用计算机、网络技术辅助教学，以及各类中小学辅导网校等。第二种称为完全式，即将e-Learning作为主要学习手段而完全替代传统教学方式，例如：网络学院、&lt;a target="_self"&gt;&lt;u&gt;&lt;strong&gt; 网络大学&lt;/strong&gt; &lt;/u&gt;&lt;/a&gt;，以及各类面向成人的职业&lt;a target="_self"&gt;&lt;u&gt;&lt;strong&gt; 网络教育&lt;/strong&gt; &lt;/u&gt;&lt;/a&gt;项目等。本文所指e-Learning教育领域应用主要针对后者，即完全应用e-Learning方式的教育或培训应用，也就是我们常说的网络教育。&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h2&gt;一、现状&lt;/h2&gt;
&lt;p&gt;国内的网络教育兴起于上个世纪末，从1998年教育部批准4所可开展高等网络教育的高校，至今已发展至68所。面向社会的各类的职业认证网络教育机构更是不计其数。根据iResearch近日发布的报告显示，2006年中国网络教育呈现出快速发展趋势，市场规模总量将到创记录的202亿元，比上年增长 23%，其中高等网络教育市场所占比重超过八成。网络教育的发展趋势令人可喜，然而，这些数据并不代表网络教育是在健康的发展，网络教育快速发展的背后存在很多亟待解决的&lt;a target="_self"&gt;&lt;u&gt;&lt;strong&gt; 问题&lt;/strong&gt; &lt;/u&gt;&lt;/a&gt;。当然，iResearch的统计数据至少证明一点——人们对网络教育有着强烈的需求。本文的焦点在于聚当前焦网络教育中的“亟待解决的问题”，分析问题产生的根源以及提出可行性的解决问题思路，以期促使网络教育回到健康的发展轨道上来。&lt;br /&gt;&lt;/p&gt;
&lt;h2&gt;二、定义&lt;br /&gt;&lt;/h2&gt;
&lt;p&gt;要想做好网络教育，经营者首先要明白到底什么是成功的网络教育。从本质上来看，评价一个网络教育项目的成功与否应该至少包含以下三个方面的满意：&lt;br /&gt;&lt;/p&gt;
&lt;h4&gt;　1、学习者满意&lt;/h4&gt;
&lt;h4&gt;&lt;/h4&gt;
&lt;p&gt;让网络教育的对象——学习者满意，是一个成功网络教育项目首要的条件。学习者满意又包含三个方面：首先，是学习者能够学到知识；其次，学习者能够得到文凭（证书）；再次，学习者在学习中能够得到人际交往的机会。&lt;br /&gt;&lt;/p&gt;
&lt;h4&gt;　2、经营者满意&lt;/h4&gt;
&lt;p&gt;经营者满意，就是提供网络教育服务的机构能够健康、良性的发展。经营者满意包含两个方面：首先，经营者满意要建立在学习者满意的基础之上，即学员能够学到知识、得到文凭、交到朋友；其次，经营者在提供网络教育服务的同时得到赢利性的经济回报，这是网络教育健康、可持续发展的必要条件。&lt;br /&gt;&lt;/p&gt;
&lt;h4&gt;　3、社会满意&lt;/h4&gt;
&lt;p&gt;社会满意，可以说是学习者满意与经营者满意的一个必然结果。社会满意也包含两个方面：首先，学习者用人单位满意，即学习者所学知识、所获得的证书能够等到用人单位和社会的认可；其次，网络教育可带来其他的社会效益，例如：增加就业机会（聘用的网络教师等）、为政府提供税收等。&lt;br /&gt;&lt;br /&gt;　　其实，不仅仅是网络教育，任何教育项目如果能满足以上三个方面的满意，我们都可以称为好的教育项目。&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h2&gt;三、问题&lt;/h2&gt;
&lt;p&gt;了解成功网络教育所包含的要点之后，我们就可以针对当前网络教育的实际情况，做以对比，找到制约网络教育良性发展的症结所在。首先，在学习者满意方面，我们看到的网络教育与传统教育的情形基本一致，即是整个国内的网络教育行业完全是生存在学习者对文凭/证书的需求之中，学习者所得到的通常是：学习到部分知识、得到证书或文凭、很难交到朋友，如果学习者满意的三个方面3分为满分，当前国内网络教育大概只能得到1.5分。其次，在经营者满意方面，由于学习者满意度的亏缺，经营者同样难以达到满意的效果。网络教育机构的定位到底是学校还是公司？这是网络教育领域一直争论的一个话题，近年来，对网络教育教学质量的实质疑以及网络教育要符合教育规律的呼声很高，其原因是网络教育经营者追求利润忽视教学而造成的。因此，在网络教育经营者满意方面，国内的赢利的网络教育机构最多也就能得到一半的分数。最后，是社会满意度，前面两个方面的情况直接决定了社会对网络教育的认可程度。虽然，我们在有些媒体上可以看到类似“网络教育毕业生广受用人单位认可”的报道，但多数出于网络教育机构为扩大招生的一面之词，难以真实反映出客观实际情况。尤其在面向高等教育的网络教育领域，在大学生就业难的今天，正规大学甚至重点大学的毕业生都很难找到合适的工作，更不用说网络教育毕业的学生了。&lt;br /&gt;&lt;br /&gt;　　上面谈到的是当前国内网络教育距离真正成功，在学习者、经营者与社会满意度三个方面的差距。接下来我们简要分析一下造成这种现状的原因，除去网络教育机构在经营上的短期功利主义思想之外，最主要的原因有以下两点：首先，学习模式单一。虽然，网络教育在国内已经发展近10年时间，但在网络学习模式上仍然没有突破性创新，几乎所有的网络教育项目都将学员自主学习网络&lt;a target="_self"&gt;&lt;u&gt;&lt;strong&gt; 课件&lt;/strong&gt; &lt;/u&gt;&lt;/a&gt;作为主要学习模式。自主学习网络课件只是网络教育的一种模式，从它不受时间、地点限制，成本低廉方便快捷的特性来看，更适合用在非正式学习领域。我们注意到，一些网络教育机构在“自主学习课件”模式上深入研发，不断更新平台和课件，甚至可以堪称世界一流。但作为正式学习的网络教育项目，如网络学院等，从最终效果来看是不适合完全采用自主学习网络课件模式的。从国外成功的网络教育项目中可以看到，没有一家以自主学习网络课件模式为主。将学习模式完全限定在“自主学习”，也使得网络教育机构将更多关注点放在设法提高学习者的自主学习能力上，然而，学习者有限的自我约束和控制能力几乎成为不可逾越的鸿沟。其次，轻教学重教管。很难想象如果一家餐厅不注重自己的菜品质量，只注重提高餐厅的环境和对客户的服务会是什么样情形，国内网络教育正是这种状况的写照。网络教育的本质、灵魂是教育，如果不把重点放在网络上的教与学上，而只关注学习之外的教务管理等方面，就是不折不扣的本末倒置。很多网络教育机构的学习平台实际上是教务管理平台，从平台的功能上就可以看到，最重要的学习功能部分极其简单，只有课程学习、讨论区、考试等几个简单功能，而在招生报名管理、交费管理、考试管理、学籍管理等教务管理方面则相当复杂，甚至一些网络学院已经在教务管理方面开始ISO认证。当然，不是说教务管理不重要，而是说教学管理更重要。国外一些网络教育机构在网上学习&lt;a target="_self"&gt;&lt;u&gt;&lt;strong&gt; 活动&lt;/strong&gt; &lt;/u&gt;&lt;/a&gt;的研究和应用上一直不断创新，成熟的、可应用在各种学科教学上的网络教学活动模块多达数十个。象OU（英国开放大学）这样的网络教育机构能够得到学员和社会的充分认可，都是与经营管理者对网络教学质量的重视分不开的。&lt;br /&gt;&lt;/p&gt;
&lt;h2&gt;四、对策&lt;/h2&gt;
&lt;p&gt;上面简要分析了网络教育的主要问题，我们再来看看运用怎样的策略和方法才能让网络教育经营的更好。&lt;br /&gt;&lt;/p&gt;
&lt;h3&gt;　1、网络教育要符合学习的客观规律&lt;/h3&gt;
&lt;p&gt;最近，一些教育专家针对当前网络教育过分商业化、市场化现象，呼吁网络教育要符合教育规律而不是市场规律。这是一个十分必要的提醒，避免网络教育走向偏重商业化的极端。但我们前面已经提到过，成功的网络教育是两个规律都不能违背的，不仅如此，更重要是不能违背学习的规律。这里特别强调的是，教育规律不等同于学习规律，二者的着眼点不同。做好网络教育的第一步就是要转换从宏观到微观的视角，即从关注教育到关注学习的转换。从国内实际情况来看，这个转变说起来容易，做起来却很难，网络教育机构的从业者中，很多人都有教育相关专业的学习背景以及来自学校的教学工作经验，所学所用都是在一顶“大教育观”的帽子之下。必须靠维范式转移（Paradigm Shift）来摘掉这顶帽子，返朴归真，回归到对“学习”本质的认识中，并依从学习的规律来规划、发展网络教育事业。凤凰城在线大学的创始人约翰·斯波林 (John G.Sperling)，被美国传统教育界视为不合主流的另类，然而，正是斯波林倡导的以学习者为中心的破坏性创新（Disruptive Innovation）造就了凤凰城在线大学的成功。进一步而言，回归学习更现实的意义是，可以让我们更好地认识“正式学习”与“非正式学习”（见“破解 e-Learning的&lt;a target="_self"&gt;&lt;u&gt;&lt;strong&gt; 迷局&lt;/strong&gt; &lt;/u&gt;&lt;/a&gt;之一认识学习 ”），对于这两种学习属性的认识和灵活运用是成功网络教育的根基。很多人都思考为什么e-Learning在国外有很多成功案例而国内却很少有成功的案例呢？也许我们把“e-Learning（重点落在学习上）”一词等同于“网络教育（重点落在教育上）”也是其中的一个原因吧。&lt;br /&gt;&lt;/p&gt;
&lt;h3&gt;　2、要突破自主学习课件的单一模式&lt;/h3&gt;
&lt;p&gt;我们要认识到，自主学习网络课件是网络学习模式中的一种，并不是唯一的形式，采取什么样的学习模式取决于课程内容、类别、欲达成的学习目标以及学习者特点等诸多要素。从学习目标来看，2001年修订的布鲁姆认知领域教学目标描述中，将教学目标分为记忆、理解、应用、分析、评价和创新六种类型，这是普遍被业界所认可的人类方式。自主学习更适合满足记忆、理解等低层次的教学目标要求，自主学习很难达到应用、分析、评价、创新等高层次学习目标的实现，而面向成人的网络教育中多数是这些教学目标要求教高的课程。因此，要实现高质量的网络教育，一定要突破“自主学习网络课件”这种单一的网络学习模式。从知识传递的方式上来讲，在线学习模式只包括两种基本模式，一种是由机器到人，一种是由人到人。英国e-Learning专家Jane Knight从在线课程的类型角度将前一种方式称为“内容为核心的课程”，后一种方式称为“沟通为核心的课程”。我们可以从学习模式上将前一种称为自主式学习模式，将后一种称为引领式学习模式。从国外网络教育成功经验来看，引领式学习模式可以满足高层次教学目标的需求。可以预见，未来引领式学习模式在国内将得到更为广泛的应用。除了引领式学习模式之外，将e-Learning方式嵌入到传统教学框架之中的混合式学习模式（Blended Learning），也是有效实现高层次教学目标的学习模式。由于面向个人的网络教育多数是完全的在线学习，混合式学习模式更多会用在企业e- Learning中。&lt;br /&gt;&lt;/p&gt;
&lt;div style="TEXT-ALIGN:center;"&gt;&lt;a href="http://www.online-edu.org/html/200704/batch.download.php?aid=704" target="_blank"&gt;&lt;img src="http://community.studyez.com/photos/zhaoyang0618/images/53797/original.aspx" border="0" alt="" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h3&gt;　3、要以社会建构主义学习&lt;a target="_self"&gt;&lt;u&gt;&lt;strong&gt; 理论&lt;/strong&gt; &lt;/u&gt;&lt;/a&gt;为基础&lt;/h3&gt;
&lt;p&gt;社会建构主义理论作为建构主义的一个分支很早就有人提出了，但直到网络大众化的应用普及，特别是Web2.0的应用热潮的来临，其应用成效才真正发挥出来。时下，博客、WIKI、播客、TAG等基于 Web2.0技术的应用都是社会建构主义学习理论在非正式学习领域具体的应用。然而，我们却严重忽视或含混了社会建构主义学习理论在正式学习领域的应用，网络教育与传统学校教育一样，都属于正式学习，那么在网络上如何实现或体现社会建构主义的学习理论的先进性呢？为了避免陷入更多晦涩难懂的学习理论之争中，本文不更多阐述社会建构主义学习理论这个概念，与在非正式学习的应用不同，社会建构主义在正式学习中可以简单理解为“一个（或几个）教师在网络上指导一群学习者学习”的理论原则，群体学习与教学（Group Learning &amp;amp; Teaching）是它最明显的特征。社会建构主义在正式学习中的应用与前面提到的引领式学习模式是相辅相成的，与非正式学习比，它强调学习要素的完整性，即学习者、教师、内容（学习对象）和环境（学习活动）都是不可缺少的。一个典型的基于社会建构主义理论的网络学习例子是，学习者以小组为单位，在教师的指导下按时间有次序完成教师精心设计的在线学习活动。与自主学习不同的是，学习者共同完成学习活动成为在线学习的主体，而非只是学习课件，事实上也只有以沟通为核心的课程才能够达成更高层次的学习目标。一些网络教育机构也开始在学习平台上融入Web2.0技术，这里特别提醒设计者要正确理解社会建构主义学习理论，以及它在正式学习与非正式学习两个领域的不同应用，否则很容易弄巧成拙，达不到设想效果。海外很多在线教育或研究机构对基于社会建构主义在正式学习的应用有很深入的研究和实践，取得相当丰硕的成果，特别是象Moodle、Docebo这样开放源码的学习平台日趋成熟，可为引领式学习模式的网络教育应用提供便捷的实践和应用环境。&lt;br /&gt;&lt;/p&gt;
&lt;h2&gt;五、结论&lt;/h2&gt;
&lt;p&gt;把书本、教材搬到网络上，无论用怎样炫耀的多媒体技术还不能称为真正的网络教育，它不过是更高级的电子图书；把课堂教学、教师讲座搬到网络上，无论用怎样的方法和形式也不称为真正的网络教育，利用光盘技术成本更低、效果更好；真正的网络教育是人与人之间通过网络为达到学习目标而相互作用的过程，它是要把教与学的过程“搬”到网络上。&lt;/p&gt;&lt;img src="http://community.studyez.com/aggbug.aspx?PostID=53962" width="1" height="1"&gt;</description><category domain="http://community.studyez.com/blogs/zhaoyang0618/archive/tags/E-learning/default.aspx">E-learning</category></item><item><title>转载: 破解E-Learning的迷局之二 企业应用</title><link>http://community.studyez.com/blogs/zhaoyang0618/archive/2007/07/21/a.aspx</link><pubDate>Sat, 21 Jul 2007 10:10:00 GMT</pubDate><guid isPermaLink="false">7b76beae-6234-4d72-a620-43d6f17cfae8:53961</guid><dc:creator>zhaoyang0618</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.studyez.com/blogs/zhaoyang0618/rsscomments.aspx?PostID=53961</wfw:commentRss><comments>http://community.studyez.com/blogs/zhaoyang0618/archive/2007/07/21/a.aspx#comments</comments><description>来源：&lt;span id="SourceLabel"&gt;在线教育资讯&lt;/span&gt;&amp;nbsp; 
&lt;div class="content" id="BodyLabel" style="PADDING-RIGHT:10px;DISPLAY:block;PADDING-LEFT:10px;PADDING-BOTTOM:0px;PADDING-TOP:0px;"&gt;
&lt;h4&gt;一、现状&lt;/h4&gt;
&lt;p&gt;自2000年以来，&lt;u&gt;&lt;strong&gt;e-Learning&lt;/strong&gt;&lt;/u&gt;在&lt;u&gt;&lt;strong&gt;企业应用&lt;/strong&gt;&lt;/u&gt;增长十分迅速。尤其是美国企业培训市场，2000年以前，e-Learning方式占所有培训方式的比例还不足5%，到2004年这个比例就达到16.8%，而2005年则高达到24%。根据美国专业咨询机构Bersin &amp;amp; Associates的最新统计，2006年，在万人以上的机构中，有36%的培训是通过e-Learning方式进行的。可以说e-Learning已经占美国企业&lt;u&gt;&lt;strong&gt;教育&lt;/strong&gt;&lt;/u&gt;培训市场的三分之一，达到数百亿美元的市场规模。而当我们将目光转向国内的时候，看到的却是另一番完全不同的景象。虽然e-Learning几乎在登陆美国的同时就来到中国，但从这几年来的应用情况来看却很难找到成功案例，e-Learning始终是不温不火，一直都处于萌芽阶段。除了外企之外，国内一些国有大中型企业已经开始e-Learning应用，尤其在金融、IT以及能源交通等行业，多数龙头企业都内部建立了e-Learning系统。如果仅从在线课程数量、学习人数以及学习时间（课时）等数据来看，似乎效果还不错，但是从组织以及员工对的e-Learning的综合评价来看，与国外的应用水平相比差距还是十分巨大的。&lt;/p&gt;
&lt;h4&gt;二、问题&lt;/h4&gt;
&lt;p&gt;对于国内尚未e-Learning的企业而言，主要问题是面临更多决策上的困惑，即看到e-Learning的优势所在，又看到了实施e- Learning的难度，使用户难以决策。从已经实施e-Learning的企业来看，出现了很多问题，这些问题主要表现在：首先是难以计算投资回报，一方面e-Learning实施成本居高不下，同时也对实施e-Learning而带来的绩效改善难以计算。其次，e-Learning的应用模式单一，企业上了e-Learning平台、&lt;u&gt;&lt;strong&gt;课件&lt;/strong&gt;&lt;/u&gt;之后，对后期的在线学习模式设计不够深入，多数都采用自主学习模式，而混合式、引领式等较为有效的学习模式应用很少。第三，缺少高质量的课程内容。对企业而言外购的通用课程难以满足学习要求，内部开发的课程成本过高、难度过大。这些原因最终都会影响企业和员工对e-Learning的接受程度。针对e-Learning在企业应用中的种种问题，很多用户采取了一些针对性的措施，例如，设法获得高层领导重视与支持、编写必要的规章制度、营造文化和学习氛围、e-Learning与绩效考评挂钩、丰富在线课程资源、加强自主开发课程等等，这些措施某种程度上都取得了很好的成效，但就目前国内企业应用整体实效而言，尚未达到预期的效果。因此，我们有必要从更深入的层次来反思e-Learning究竟能组织机构能带来哪些改变，制约我们的瓶颈究竟在哪里？&lt;/p&gt;
&lt;h5&gt;反思一：e-Learning能解决组织机构中什么问题？&lt;/h5&gt;
&lt;p&gt;对比e-Learning在国内和国外企业中的应用，我们很容易发现这样一个不同之处，虽然同是e-Learning，但解决的是组织机构中的不同问题。在国外，尤其500强等大型企业的应用中，e-Learning并不是独立存在的，已经内化到企业人力资本管理系统之中，e-Learning不仅仅是培训部门的一种培训手段应用，而是解决企业员工职业发展、协调组织与个人目标的一个重要工具。而国内e-Learning的应用尚达不到这样的深度，e-Learning仍然被定位于一种新型培训方式。例如，国内保险业和直销业是国内e-Learning应用最为积极的两个行业，培训部门面对广大营销人员的培训压力成为e-Learning需求的直接动力。简而言之，国外企业应用e-Learning主要是解决组织中的“学习”问题，与组织中人力资本的管理与发展紧密结合一起，是一个企业级别应用；而国内企业应用e-Learning主要是解决“培训”问题，将e-Learning作为解决传统培训压力的一种有效方式，是一个部门级别的应用。学习和培训的区别，体现在组织机构的应用中就是企业和部门的区别。由于国内外企业在规模、体制、结构、成长历史以及环境文化等众多因素都存在很大的差异，e-Learning在国内的应用若达到国外的应用水平，尚需时日。但随着企业国际化的发展，这种差距也会越来越小。&lt;/p&gt;
&lt;h5&gt;反思二：企业中的教育培训职能变化影响e-Learning的应用&lt;/h5&gt;
&lt;p&gt;在国内企业e-Learning应用的简短历史中，正是企业中的教育培训职能发生变化的几年，这些变化影响了教育培训部门的结构、职责和权力，对e-Learning应用效果产生很大的影响。对于企业而言，e-Learning本身就是一个在不断变化的新鲜事物，而组织中教育培训职能的变化更加导致e -Learning的应用难度。企业教育培训职能的变化主要体现在以下几个方面，首先，外部环境变化的影响。近几年，知识经济、以人为本、学习型组织建设、知识管理等强化知识与人才的概念不断被企业接纳，这些新的理念直接对企业中的教育培训职能提出新的要求，也使得培训部门对e-Learning的应用难以把握；其次，企业内部的组织结构也在不断调整变化，改制、并购、上市等动作都会对培训职能有新的要求和变化，甚至直接影培训部门在组织中的存在形式，很多大型企业的培训职能都由传统的二级结构调整为人力资源部门下的三级结构。例如，某大型金融机构，在经多次对e-Learning项目的论证和考察，即将准备实施之际却由于面临企业海外上市而不得不搁置下来。与国内的企业相比，国外企业中受这方面的影响很小，e-Learning通常在相对稳定的组织架构中应用，这也是国内e-Learning应用的成熟度上不及国外的一个内在原因。企业中的教育培训职能演变是个长期的过程，不同企业可能有不同的结果。除此之外，随着企业开始应用越来越多的信息化系统，OA、e-HR、KM、绩效管理等人力资源相关信息化系统的实施也给企业带来新的问题，即如何正确处理 e-Learning与这些系统之间的关系，以及如何更为有效地整合各个系统。&lt;/p&gt;
&lt;h4&gt;四、趋势&lt;/h4&gt;
&lt;p&gt;未来，e-Learning在国内企业中的应用会有哪些趋势呢？我们可从国外企业的应用现状、组织对学习的本质需求以及新技术在学习领域的应用等方面来作以预测。&lt;/p&gt;
&lt;p&gt;首先，我们从组织机构对学习的本质需求来看未来e-Learning在企业中的应用趋势。目前，很多e-Learning用户及厂商还是将e-Learning视为一个独立完整的系统来看待，未来，e-Learning将作为Learning的e化形式回归到众多的Learning形式之中。e-Learning从Learning中来，回Learning中去，然而这一来一回却意义非凡，我们可以清楚预见到e-Learning将沿着“正式学习”与“非正式学习”两条路径回归到组织中，正式学习的e-Learning将作为教育培训部门的一种有效培训方式；非正式学习的e-Learning将作为企业知识管理的一种具体形式，他们都将成为企业未来HCM（人力资本管理）中“学习”部分的重要组成部分。如下图所示：&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.online-edu.org/batch.download.php?aid=677" target="_blank"&gt;&lt;img src="http://community.studyez.com/photos/zhaoyang0618/images/53794/original.aspx" border="0" alt="" /&gt;&lt;/a&gt;&lt;a href="http://www.online-edu.org/batch.download.php?aid=674" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;不仅e-Learning将融入HCM之中，e-HR、KM等所有与企业中“人”紧密相关的系统都将整合到HCM中，未来企业的信息化系统将只存在人、财、物等几个主要系统，这是企业简化信息化应用的必然趋势。国外几家知名的e-Learning服务商几年前就已经开始迎合市场的需求，通过并购、战略重组等方式向HCM转型，提供客户 HCM整体解决方案。值得注意的是，国外著名的HCM解决方案提供商都是由e-Learning公司发展而来的，如：Saba、Sumtotal等。这对国内的e-Learning服务商也许是个好的征兆，e-Learning服务商过度到HCM比e-HR或KM服务商相对而言会更容易一些。&lt;/p&gt;
&lt;p&gt;其次，我们从企业对学习的不同需求分别来看未来e-Learning在企业中的应用趋势。企业中存在正式学习与非正式学习两种e-Learning，我们不要以教育培训部门的角度来看待这两种模式，一些培训主管将必修课视为正式学习，将选修课视为非正式学习，这种观点是不完全正确的。非正式学习广泛存在与企业内，部门内、员工间，知识管理是非正式学习的一个重要应用领域。一个现实的情况是，多数非正式学习的应用领域并不是企业中教育培训职权范围内的，因此，我们也注意到一些企业的培训部门在推广e-Learning时时常处于以一种尴尬的境地，原因正是e-Learning预期效果和推动机构实际职权之间并不匹配所造成的。实践证明员工的70~80%的左右的职业技能是通过非正式学习获得的，因此，e-Learning如何更好支持企业中的非正式学习，是e -Learning应用成败的关键。内容管理、检索、学习社区、智能化、标准化等方面都是e-Learning对非正式学习支持的特性，非正式学习的e- Learning系统强调技术对学习的支持。当然，我们也不要把它看的过于复杂，实际上如果在企业中能建立象&lt;u&gt;&lt;strong&gt;Google&lt;/strong&gt;&lt;/u&gt;一样简单易用的企业知识搜索系统，就是一种很好的非正式学习e-Learning的应用。企业中的正式学习主要由教育培训部门负责，推动正式学习的e-Learning应用理所当然是教育培训部门的职责。以往企业在推动正式学习的e-Learning项目时，主要采用自主学习模式，实际这一模式更适合非正式学习，对于正式学习而言，有效的学习模式是混合式学习以及引领式学习模式。特别是引领式学习模式，在国外&lt;u&gt;&lt;strong&gt;网络教育&lt;/strong&gt;&lt;/u&gt;中已经取得了很大成功，企业中也一样有很好的应用，例如， Oracle大学已经把引领式学习（有教师指导的在线学习）列为一种正式的培训模式。虽然在企业中存在着两种正式学习与非正式学习两种e- Learning应用，但并不意味着需要两套&lt;u&gt;&lt;strong&gt;LMS&lt;/strong&gt;&lt;/u&gt;（学习管理系统），企业需要的是一套对两种模式都有很好支持的一个系统。目前国内厂商开发的LMS更具有课程管理系统（CMS）的特点，而非真正的学习管理系统，在设计上没有考虑或不够重视两种不同的e-Learning应用，用户在使用上会感觉僵硬、不能灵活支持多种学习模式。国外的LMS产品，如Saba、Sumtotal、Oracle等在对不同学习模式的支持上要更为优秀，但另外一个问题是很多使用国外LMS产品的国内企业用户，没有将LMS的这种优势发挥出来，仍然作为一种简单的网络课程管理工具来使用。这种现象的造成与企业中e- Learning应用环境的成熟度、使用者对e-Learning应用的理解程度都有很大关系。&lt;/p&gt;
&lt;p&gt;最后，我们来看一些新学习理念和方法以及新技术对e-Learning未来的影响。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;混合学习：B-Learning&lt;/strong&gt;&lt;br /&gt;混合学习（Blending Learning）已经不是一个新的概念，作为一种有效的培训方式已经被广泛接受。混合学习本身就包含着众多的学习模式，不仅仅线上线下可以混合，线上与线上（同步与异步）、线下与线下也可以混合，只要围绕达成学习目标为最终目的，可以从&lt;u&gt;&lt;strong&gt;教学&lt;/strong&gt;&lt;/u&gt;策略、内容和传递方式等几个方面设计混合学习项目。混合学习是推动企业e-Learning正式学习应用的一个重要方式，很多企业在实施e-Learning之后，由于没有重视两种不同的e-Learning应用，平台中的课程都成了使用率很低的“僵尸”课程，通过混合培训的实施都可以重新“激活”这些课程，取得更好的效果。&lt;br /&gt;
&lt;li&gt;&lt;strong&gt;快速学习：R-Learning&lt;/strong&gt;&lt;br /&gt;快速学习（Rapid e-Learning）是近些年发展最快的e-Learning方式，需求旺盛的背景主要有两点：其一，由于企业对有效地、经济地展开时效型培训有很强的需求；其二，很多培训相关内容知识的课程内容专家对简便灵活的课程开发也有着很大的需求，而技术的发展、新制作工具的出现则满足了他们的需求。快速学习将成为丰富企业e-Learning课程内容的重要方式，它对正式学习、非正式学习的e-Learning应用都有很大的帮助。&lt;br /&gt;
&lt;li&gt;&lt;strong&gt;嵌入学习：&lt;/strong&gt;&lt;br /&gt;嵌入学习包含两个层面的意思，从企业学习理念来看，它是一种从“学习”到“工作”的嵌入，即在做中学，例如，&lt;u&gt;&lt;strong&gt;IBM&lt;/strong&gt;&lt;/u&gt;近年一直倡导在组织中要实现将学习从外部嵌入到工作之中，并在IBM内部已取得了一些应用实效。从技术层面来看，嵌入学习就是将学习内容嵌入到学习者最常使用的软件界面中。例如，浏览器的 Toolbar中嵌入学习内容的导航、分发小段学习内容到用户的E-Mail之中等等。这些嵌入式的方法可以很好降低用户对e-Learning的使用难度，有利于更人性化推广e-Learning。&lt;br /&gt;　 
&lt;li&gt;&lt;strong&gt;&lt;u&gt;&lt;strong&gt;游戏&lt;/strong&gt;&lt;/u&gt;学习：G-Learning&lt;/strong&gt;&lt;br /&gt;寓教于乐，将游戏引入到e-Learning 中，可以增加学习者的兴趣。在非正式学习应用领域中可以在学习社区中，增加游戏化的元素，例如通过奖励积分、头衔等方式鼓励员工在虚拟学习社区中分享知识、帮助有需要的员工。在正式学习应用领域中可以应用仿真模拟等方式实施e-Learning，尤其在医院、交通、制造以及军队等领域有着广泛的应用空间。MIT媒体实验室曾经为美国一家医疗机构开发一门分诊医生的培训课程，完全采用真人扮演的游戏化仿真模拟e-Learning方式，经使用&lt;a title="评建工作" href="http://219.138.167.46/news/list.aspx?cid=12"&gt;评估&lt;/a&gt;后效果极佳。&lt;br /&gt;　 
&lt;li&gt;&lt;strong&gt;&lt;u&gt;&lt;strong&gt;移动学习&lt;/strong&gt;&lt;/u&gt;：M-Learning&lt;/strong&gt;&lt;br /&gt;近年来由于智能手机、PDA、&lt;u&gt;&lt;strong&gt;学习机&lt;/strong&gt;&lt;/u&gt;、MP4等移动终端的普及大幅增加，“移动学习”已经成为e-Learning的另一个热点话题。移动学习可视为学习内容在用户使用终端上的一种新的呈现方式，企业可以针对移动学习便携、即时的特点来设计e-Learning应用。例如，某保险公司针对保险业务人员，配备移动终端设备，关于险种介绍、费率和理赔的计算等功能都可以实现，大大方便业务人员工作和学习的需要。&lt;br /&gt;　 
&lt;li&gt;&lt;strong&gt;Web2.0趋势&lt;/strong&gt;&lt;br /&gt;博客（Blog）、维客（Wiki）、播客（Podcast）等众多Web2.0应用越来越多走向大众，其中给使用者带来最大变化是从被动（浏览内容）到主动（建设内容）的变化。用户使用网络形式的变化给e- Learning的应用带来很多积极的影响，尤其在组织中非正式学习e-Learning的应用，例如，知识管理方面，员工利用这些技术和工具可以很方便分享知识。当然，用户也要避免过于追逐某些花哨的概念，不要舍本逐末，毕竟Web2.0在正式学习的e-Learning应用中还微不足道。&lt;/li&gt;&lt;/ol&gt;
&lt;h4&gt;五、对策&lt;/h4&gt;
&lt;p&gt;那么就现阶段而言，结合e-Learning企业应用未来的发展趋势，e-Learning应用者以及服务提供商应该采取怎样的对策呢？&lt;/p&gt;
&lt;p&gt;首先，从企业全局的应用角度来看。在理念方面，要认识到企业从HR（人力资源）到HC（人力资本）过度的大方向，要清晰组织对学习的实际需求点，要明确e-Learning在组织机构中的两种应用类型。对于e-Learning项目应该从企业整体应用的高度来计划、实施和推广。由于实现HCM（人力资本管理）是一个相对复杂的过程，多数国内企业的客观环境远没有达到人力资本管理的要求。既然e-Learning在国内尚处在部门应用的级别，在实际行动方面，企业就可以考虑在更多部门范围内应用e-Learning。在我们以往的认识中，e-Learning应用焦点往往只关注在企业人力资源或培训部门，其他部门则很少独立应用。但从e-Learning在组织机构应用的实效统计来看，人力资源或培训部门的应用既不是最多的也不是最佳的。e- Learning在企业的上游、中游（核心业务部门）、下游成功应用的范例更多，这些领域是快速学习（Rapid e-Learning）的主要应用范围。我们可以将e-Learning在企业中的应用领域用一个“日”字来表示，如下图所示：&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.online-edu.org/batch.download.php?aid=679" target="_blank"&gt;&lt;img style="WIDTH:503px;HEIGHT:308px;" height="308" src="http://community.studyez.com/photos/zhaoyang0618/images/53795/original.aspx" width="503" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;左边的一竖代表e-Learning在教育培训部门的应用，它是贯穿整个企业的正式学习的e-Learning应用；右边的一竖表示e-Learning在知识管理等非正式学习领域的应用，负责的部门可能是企业文化、企划、综合办公室或HR部门，它的应用也是贯穿整个企业的；而中间的三横则分别代表e-Learning在企业的上、中、下游的部门应用。企业上游中e-Learning可以应用于对产品供应商、OEM厂商等上游合作伙伴的培训，尤其在生产制造、产品加工、汽车等行业可广泛应用；中游e-Learning应用主要指应用于企业研发、生产等核心部门，例如，台湾智邦科技就是经由学习网的建置，让产品开发时程大幅缩短二至五周，生产成本降低两成，同时产品准交率也提高到90％；下游e-Learning应用主要指针对客户服务以及针对代理商、经销商的培训应用，例如，HP电脑、Audi汽车、Kumho轮胎等企业在经销商培训方面均广泛采用e-Learning模式。企业在考虑建制e-Learning系统时，应充分考虑这些领域的应用。如果觉得整合应用过于复杂，可以考虑各个部门独立采购经济适用的Rapid e-Learning产品，这样可以大大缩短e-Learning的应用周期，待企业整体e-Learning系统环境成熟后再予以统一整合。&lt;/p&gt;
&lt;p&gt;其次，从企业培训部门角度来看。在理念方面，要建立起完整的组织学习架构观。随着科技的发展，出现了越来越多的学习方式，如：传统的书籍、教材、教室、教练等方式，有新兴的网络、卫星、光盘、混合等方式，越来越多的学习方式虽然可以给培训管理者带来更多的选择，但同时也带来不小的困惑，怎样将各种学习方式最有效地加以利用是培训管理者面临的一个新课题。以往，培训管理者多从传统以及e化两种方式来做选择上的考虑，这种方法仍然不够有效，若要科学、灵活、正确应用各种学习方式，必须要建立起完整的组织学习架构的观念。组织学习架构就是要将各种学习方式按各自的特点和适用领域放置在一个能够表明之间相互关系的架构之中，只有这样一个明确的架构，培训管理者才能够在具体应用中驾驭各种各样复杂的学习模式。正式学习与非正式学习正是组织学习架构一个重要维度，它与另一个维度—学习方式，即传统学习方式与e化学习方式共同构成一个二维组织学习架构，如下图所示：&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.online-edu.org/batch.download.php?aid=678" target="_blank"&gt;&lt;img src="http://community.studyez.com/photos/zhaoyang0618/images/53796/original.aspx" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;我们看到各种学习方式均有与其相对应的象限，培训管理者可以根据自己企业的实际情况，在不同的象限中选择每个培训、学习项目的具体方式。组织学习架构的观念更重要的意义在于引导培训管理者更多从组织学习的角度关注问题，而不是仅仅从教育培训的角度，这样更有利于教育培训部门在未来企业实现HCM人力资本管理之时，有较为顺利的过度，同时也可在HCM中担负更多、更重要的责任。除了在理念上要建立起完整的组织学习架构观，在实际行动方面，培训管理者必须走出对 e-Learning课程所持有的必修课和选修课的简单认识，可着手建立非正式学习与正式学习两套体系来推进e-Learning的应用。在非正式学习上主要以建立学习内容资源库、在线学习社区，通过制订鼓励性政策，倡导员工在企业内学习与分享知识，通过各种手段在企业中营造学习的文化氛围；在正式学习方面要针对各类具体培训项目，建立若干种混合式培训以及引领式培训的实施模板，并建立规范的实施制度和考评措施。通过两套体系实施的深入，便可彻底消灭那些 e-Learning平台上的“僵尸”课程，让e-Learning真正担负起组织中学习的重要作用。&lt;/p&gt;
&lt;p&gt;最后，我们再来关注一下e-Learning服务商。目前国内的e-Learning服务商多为“迎合型”服务商，即按企业的实际需求来提供或开发相应的产品。迎合型服虽然能够满足可户化的需要，但我们不能忽视大多数企业用户对e-Learning认识是相对片面、并不成熟，需要厂商能够提供可信且可靠顾问指导服务。因此，在理念方面，e-Learning服务商应该从“迎合型”转为“引导型”，不要片面追求销售业绩，应本着顾问式服务的精神，将服务延伸至用户后期的e-Learning运营之中，让e-Learning真正成为企业学习的助力引擎，并在服务中积累经验与用户共同成长。在实际行动方面，LMS厂商应特别注意到企业HCM人力资本管理的大方向，从人力资本管理系统的大的架构中考虑e-Learning部分的设计；另外，还要充分考虑到对正式学习与非正式学习两种e-Learning方式的支持，这两个方面都可以参考国外成熟的HCM或LMS平台的设计。在内容方上，无论是内容提供商还是用户，都要扭转 “Content is king（内容为王）”的错误观念，e-Learning的应用中取得实际的绩效才是衡量项目成败的标准。学习内容或课件与平台一样，都是组成e-Learning必不可少的一个部分，内容在非正式学习的e-Learning应用中占有相当重要的地位，但在正式学习e-Learening应用中只起到辅助或伴侣的作用，只有建立起这样的认识，才能为内容产品分别在企业中两种e-Learning推广应用上打下良好的基础。例如，上海一家e- Learning内容提供商已经将自己定位在“培训伴侣”的角色上，并就开发的课程针对企业正式学习领域的应用，推出了混合式的“116培训流程”方案，实现在线培训与传统培训的无缝衔接，取得很好的应用效果。但同时，我们也看到，一些在国外本是用来辅助混合式学习的在线课程，引进国内后只当作独立在线学习课程来使用，使用效果大打折扣。根据统计，目前国内已经实施e-Learning的企业虽逐年增加，但占全部企业的比例还很小，很多企业由于e- Learning实施的复杂性以及高成本而无缘e-Learning，这些企业对e-Learning ASP（e-Learning 应用服务提供商）还是有很大需求的，目前，国内e-Learning服务商以平台厂商和内容厂商为主，没有真正意义上的e-Learning ASP服务商，虽然有些机构提供平台租用形式的ASP服务以及销售课程帐号形式的ASP服务，但这些都不是用户真正需要的e-Learning ASP服务，这些机构经营的效果普遍不佳，也恰恰证明了这一点。首先，多数用户需要的是e-Learning内容上的ASP服务，并非是技术上的，想通过 e-Learning 的方式弥补或代替某类传统培训内容；其次，用户需要的是正式学习的e-Learing ASP服务，而非只是购买学习卡或帐号进行自主学习。我们可以更简单地理解为企业需要的是一种在线培训服务，在采购的决策上与采购传统培训没什么区别，但在效果上可以更容易体验到e-Learning带来优势。当企业的培训管理者、员工提前熟悉并充分接受e-Learning之后，再来实施企业内部的e-Learning系统，成功率自然就高得多了。因此，有培训业务背景的厂商，可以就通用培训或行业通用培训，尝试提供企业这样的e-Learning ASP服务。&lt;/p&gt;
&lt;p&gt;以上我们分析了国内e-Learning企业应用的历史背景、所面临的问题、发展趋势以及应采取的对策。无论现在e-Learning在企业中应用的现状如何，一个不争的事实是e-Learning将在企业未来人力资本管理中承担重要的角色，e-Learning将成为满足组织机构对学习需求的最佳方式。也许未来“e-Learning”这个词汇会逐渐消失，但人们会发现，无论是在服务整个企业的人力资本管理、知识管理或是&lt;u&gt;&lt;strong&gt;企业大学&lt;/strong&gt;&lt;/u&gt;中，还是在身处企业上、中、下游的具体业务部门中，e-Learning的身影将无处不在。&lt;/p&gt;&lt;/div&gt;&lt;img src="http://community.studyez.com/aggbug.aspx?PostID=53961" width="1" height="1"&gt;</description><category domain="http://community.studyez.com/blogs/zhaoyang0618/archive/tags/E-learning/default.aspx">E-learning</category></item><item><title>转载: 破解e-Learning的迷局之一 认识学习</title><link>http://community.studyez.com/blogs/zhaoyang0618/archive/2007/07/19/e-learning.aspx</link><pubDate>Thu, 19 Jul 2007 11:15:00 GMT</pubDate><guid isPermaLink="false">7b76beae-6234-4d72-a620-43d6f17cfae8:53793</guid><dc:creator>zhaoyang0618</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.studyez.com/blogs/zhaoyang0618/rsscomments.aspx?PostID=53793</wfw:commentRss><comments>http://community.studyez.com/blogs/zhaoyang0618/archive/2007/07/19/e-learning.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://www.online-edu.org/index.php/3480/action_viewspace_itemid_9569"&gt;http://www.online-edu.org/index.php/3480/action_viewspace_itemid_9569&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2007-02-23&amp;nbsp;&lt;a href="http://www.online-edu.org/index.php/3480/action_spacelist_type_blog_itemtypeid_115"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;从互联网走进寻常百姓&lt;a target="_self"&gt;&lt;u&gt;&lt;strong&gt; 生活&lt;/strong&gt; &lt;/u&gt;&lt;/a&gt;之日起，就不断有人致力研究如何运用网络技术来帮助人们学习，于是便兴起了&lt;a target="_self"&gt;&lt;u&gt;&lt;strong&gt; 网络教育&lt;/strong&gt; &lt;/u&gt;&lt;/a&gt;（&lt;a target="_self"&gt;&lt;u&gt;&lt;strong&gt; e-Learning&lt;/strong&gt; &lt;/u&gt;&lt;/a&gt;）这个新兴的领域。回顾e-Learning在国内近十年的发展和应用，一个不争的事实是e-Learning无论在教育界或企业界中的应用，都很难找到成功的范例，e-Learning几乎每一年都是在雷声大雨点小的情况下度过的。然而，当我们放眼国外，看到的却是完全不同的另外一翻情景：教育应用中，e -Learning已经成为各类学校不可缺少的&lt;a target="_self"&gt;&lt;u&gt;&lt;strong&gt; 教学&lt;/strong&gt; &lt;/u&gt;&lt;/a&gt;辅助手段；一批优秀的&lt;a target="_self"&gt;&lt;u&gt;&lt;strong&gt; 网络大学&lt;/strong&gt; &lt;/u&gt;&lt;/a&gt;教学质量、社会认可度正节节攀升，大有赶超传统大学之趋势；企业应用中，e-Learning在企业所有&lt;a target="_self"&gt;&lt;u&gt;&lt;strong&gt; 培训&lt;/strong&gt; &lt;/u&gt;&lt;/a&gt;方式的比例年年递增，e-Learning在美国培训市场已近三分天下有其一。同样是e-Learning，为什么国内外有如此大的差别呢？在寻找真正原因之前，我们来看看两个小例子。一家在国内运营的很有影响力的对外汉语教学网络教育机构，品牌、资源、课程等方面可以说都是最好的，汉语学习也是市场上的一个热点，可是他们却很难吸引海外的学习者，几乎面临“关门大吉”的境地；另一个例子是一个地地道道的国内学习者，选择了国外一家网络教育机构的课程，参加学习后对网络学习赞不绝口，直言网络学习给他工作、生活带来了翻天覆地的变化。面对这样的对比，国内e-Learning从业者不得不进行深入的反思，看看e-Learning症结究竟在哪里。&lt;br /&gt;&lt;br /&gt;　　将国内外的e-Learning应用做以对比之后，就会发现这样一个&lt;a target="_self"&gt;&lt;u&gt;&lt;strong&gt; 问题&lt;/strong&gt; &lt;/u&gt;&lt;/a&gt;：e -Learnings应该从宏观入手还是从微观入手？正如国内外从业者对e-Learning的称呼有所不同一样，我们开始的时候就分别选择了不同的着眼点。e-Learning在国内多称为网络教育，重点落在了“教育”上，我们是从教育或培训的宏观视角来开始e-Learning的；e- Learning在国外重点落在了“Learning（学习）”上，他们是从学习的微观视角来开始e-Learning的；这是最终导致e- Learning在国内外应用情况完全不同的直接原因。孰是孰非，从结果一看便知——从微观入手是正确的。因此，要想做好e-Learning必须转换视角，重新认识学习，必须回归到学习为起始点。&lt;br /&gt;&lt;br /&gt;　　教育培训专家可以基于各种&lt;a target="_self"&gt;&lt;u&gt;&lt;strong&gt; 理论&lt;/strong&gt; &lt;/u&gt;&lt;/a&gt;将学习分为各种各样模式，然而，从学习者获取知识的方式角度来看，学习只有正式学习和非正式学习两类。所谓“正式学习”是指有组织、有时间地点、有明确学习目标的学习形式。例如：学校的教育、正式的教室培训课程、讲座等。所谓“非正式学习”是相对正规学校教育或继续教育而言的，指在工作、生活、社交等非正式学习时间和地点接受新知识的学习方式。我们会清楚地看到e-Learning的方方面面都围绕着正式学习与非正式学习而展开，e-Learning在正式学习与非正式学习中有两条清晰的应用主线。而当e-Learning应用者以宏观的教育、培训视角来审视e-Learning时很难发现或不够重视这两条主线，多数情况下把e-Learning视做一个整体的新型教育培训形式，并不加以区分。这种做法不符合学习的客观规律，当然也难以取得满意的效果。当把视角从宏观转向微观，从教育转向学习，以前困惑我们很多e-Learning问题、困惑都被一一厘清。下面我们来认识网络环境下两种学习类型一些重要特点。&lt;br /&gt;&lt;br style="FONT-WEIGHT:bold;" /&gt;1.学习时间&lt;br /&gt;&lt;br /&gt;对于正式学习而言，必须要有明确的学习时间。例如：传统教育中的课程表，培训时间表等，这些都是对时间要素的强调。而对于非正式学习来说，对时间并没有明确的要求。学习行为可以发生在任何时间，它取决于学习者内在的需求。传统学习中几乎没有任何人混淆正式学习与非正式学习对时间的不同要求，然而在e- Learning中，几乎所有人都混淆了正式学习与非正式学习对时间的不同要求。Anytime（任何时间）似乎成了所有网络学习的必然选择和优势，这显然是违背学习的客观规律的。因为我们知道Anytime（任何时间）只适合非正式学习，并不适合正式学习。因此，基于正式学习的e-Learning，学习时间的设计必须是“特定时间”而非“任何时间”。&lt;br /&gt;&lt;br /&gt;2.学习地点&lt;br /&gt;&lt;br /&gt;对于正式学习而言，必须要有一个明确的学习地点。例如：某个教室。传统中的正式学习几乎都在特定的教室中发生。而非正式学习则不强调学习地点，依学习者的不同情况，学习行为可以发生在任何地点。与前面提到的时间要素一样，传统学习中几乎没有任何人混淆正式学习与非正式学习对地点的不同要求，然而在e- Learning中，几乎所有人都混淆了正式学习与非正式学习对地点的不同要求。不同的是，e-Learning中的地点并非指学习者的学习地点，而是指网上的学习场所（学习资源或学习&lt;a target="_self"&gt;&lt;u&gt;&lt;strong&gt; 活动&lt;/strong&gt; &lt;/u&gt;&lt;/a&gt;所在的位置，例如&lt;a target="_self"&gt;&lt;u&gt;&lt;strong&gt; 课件&lt;/strong&gt; &lt;/u&gt;&lt;/a&gt;在平台中的位置或某一在线讨论的论坛场所）。学习者可以学习任何课程、任何素材、任何章节也似乎成了所有网络学习的必然选择和优势，这同样违背学习的客观规律。学习任何内容同样是适合非正式学习特征的，并不适合一个正式学习行为。因此，基于正式学习的e-Learning，学习地点（场所）的设计必须是“特定地点”而非“任何地点”。&lt;br /&gt;&lt;br /&gt;3.学习动机&lt;br /&gt;&lt;br /&gt;对于正式学习而言，学习行为的动机来源于外部。例如：传统学校中的课程设置、一个培训项目的开发等，都不是满足某个学习者个体的需要，而是有计划有组织的集体行为。对于非正式学习而言，学习行为的动机完全来自于自我内部，首先是自己的需要，然后才触发了学习行为的发生。网络环境下清楚学习行为的动机是十分重要的，它会直接影响e-Learning项目的推广策略。在企业应用中，很多企业的e-Learning体系都是基于非正式学习的模式构建的，往往过多强调制订学习政策、举办推广活动等外部的推广因素，结果往往收效甚微，不能取得预期的效果。而在教育应用中，却忽视制定合适的网络教学策略等外部因素，过分强调学习者自主学习能力，同样也不能取得好的效果。&lt;br /&gt;&lt;br /&gt;4. 学习目标&lt;br /&gt;&lt;br /&gt;　　对于正式学习而言，有着统一、明确、固定的学习目标。例如：学校中的课程、正式的培训课程等都有明确的学习目标。非正式学习中并没有严格、统一的学习目标，学习者的学习目标往往都是动态、随机出现的。网络环境下，如果是基于正式学习的e-Learning项目，&lt;a target="_self"&gt;&lt;u&gt;&lt;strong&gt; 教学设计&lt;/strong&gt; &lt;/u&gt;&lt;/a&gt;中就要考虑以学习目标为中心。如果是基于非正式学习的e-Learning项目，就要更多考虑满足学习者即时学习的需要。例如：学习平台的管理粒度应该支持到章节而非课程，实现课程内容的结构化管理（Learning Objective），方便学习者快速检索，满足个性化学习需要。另外，还要重视学习社区的作用。&lt;br /&gt;&lt;br /&gt;5.学习周期&lt;br /&gt;&lt;br /&gt;对于正式学习而言，通常都有个较长的学习周期。例如：学校中每门课程都有一定的课时要求。而非正式学习中并没有学期的概念，学习者的问题解决了就标志学习已经结束，学习往往是瞬时的行为。当我们没有将正式学习与非正式学习的e-Learning分开来看的时候，“学期”的概念也变的含混不清了，对于一门开放式的网络课程而言，对某些学习者可能是十课时的课程，对另一些学习者可能只是两课时，“按需学习”已经将正式学习中的学期打乱。这种看似先进的学习方式实际上只适合在非正式学习项目中，从实际效果来看，网络环境下正式学习仍然需要有统一、固定的学期，在这一点上是不能以“学习者为中心”，不能将学习时间完全掌控在学习者自己的手中。理由很简单，其一，学习者的认识有限，并没有对课程的十足把握的能力；其二，课时的凌乱会打破有序的学习周期，无法建立网络虚拟学习环境。&lt;br /&gt;&lt;br /&gt;6.关注重点&lt;br /&gt;&lt;br /&gt;对于正式学习而言，关注的重点既包括学习的结果也包括学习的过程。网络环境下的正式学习同样注重学习者的学习过程，教学组织者在学习过程中运用多种教学设计手段，实施诸如分组学习、组织在线讨论等教学活动，管理者也十分重视形成性评价。而非正式学习是基于问题的学习，通常只注重结果，至于采取何种方式以及过程如何并不是最重要的。网络环境下的非正式学习体系的设计应力求简洁、快速、方便，简化获取知识的过程，易于学习者使用。&lt;br /&gt;&lt;br /&gt;7.师资要求&lt;br /&gt;&lt;br /&gt;对于正式学习而言，教师通常是不可缺少的要素。无论是学校的课堂中，还是培训机构的教室中，没有教师是很难想象的。对于非正式学习而言，教师并非是不可或缺的资源。e-Learning之中我们最容易犯的错误之一就是对教师角色认识上的错误，很多e-Learning的实施者将视频课件中的教师当作网络学习中的教师，这是个致命的错误。在一个正式学习的e-Learning项目中，真正意义上的教师是能够与学生互动的“活”教师，而非是视频课件中的 “死”教师。如果没有认识到这一点，网络学习的性质就变了。不幸的是国内绝大多数的网络教育机构都犯了这个错误，如火如荼的网络教育实质成了教师课堂授课的网上“大搬家”，尽管这几年出现了Flash动画、卡通人物等多种课件表现形式，也没有改变“搬家”的实质。当然，若将这种讲授式的课件作为非正式学习项目运营，或作为正式学习的补充素材还是完全可以的。&lt;br /&gt;&lt;br /&gt;8.理论基础&lt;br /&gt;&lt;br /&gt;正式学习与非正式学习都有着各自的学习理论基础，e-Learning中仍然如此。网络环境下的正式学习更象是传统正式学习的网络翻版，因此，传统正式学习的理论，如：行为主义、认知主义、建构主义等都适用于正式学习的e-Learning。这里特别强调社会建构主义（Social Constructionist）学习理论，它是网络环境下正式学习教学设计的一个重要理论基础。非正式学习的理论基础强调学习者个人的心理因素，一个有趣的现象是传统&lt;a target="_self"&gt;&lt;u&gt;&lt;strong&gt; 远程教育&lt;/strong&gt; &lt;/u&gt;&lt;/a&gt;的理论很多都适用于非正式学习行为，而对网络环境下的正式学习却并没有指导意义。&lt;br /&gt;&lt;br /&gt;9.知识传递&lt;br /&gt;&lt;br /&gt;　　正式学习强调信息或知识的传递是从人到人的传递。正式学习的e-Learning也是如此，它的本质是一部分人（教师）通过网络将知识传递给另一部分人（学生），知识由人到人是正式学习的特点。课件资源等&lt;a target="_self"&gt;&lt;u&gt;&lt;strong&gt; 其它&lt;/strong&gt; &lt;/u&gt;&lt;/a&gt;媒介只起到辅助作用。非正式学习注重的是结果，知识如何传递并不是重点，网络环境下的非正式学习，强调的是人与计算机网络之间的互动（人机交互），知识由机器到人的传递是它的特点，以自主学习网络课件为主的e-Learning都属于这种情况。&lt;br /&gt;&lt;br /&gt;10.学习者关系&lt;br /&gt;&lt;br /&gt;正式学习强调学习者之间的协作关系。网络环境下正式学习同样注重学习者之间的关系，这是社会建构主义学习理论的重要特征。正式学习项目中学习者并不是独立存在的，学习过程很多情况下是以小组等单位进行的，例如很多讨论、作业等学习活动都是以学习小组为单位共同完成的。非正式学习更注重的是个体学习，在非正式学习体系中，学习者是以个体的身份存在，学习过程是独立完成的。国内的很多网络教育中“同学”是个非常淡化的概念，尽管网络教育机构运用讨论、同步交流软件等方式倡导学员之间的交流，但由于学习的主体仍然自我独立完成的，结果同学之间的亲密和友谊程度很难象传统学校中的正式学习中的一样，远程学习者的孤独感始终存在。&lt;br /&gt;&lt;br /&gt;11.学习标准&lt;br /&gt;&lt;br /&gt;e-Learning中正式学习与非正式学习分别对应不同的学习标准。正式学习的e-Learning标准、规范是围绕着学习者、学习资源、教师、环境等要素全方位的。如：不断完善的IEEE／LTSC等标准。非正式学习的-Learning标准通常只重视学习资源相关部分的标准规范。例如： AICC/SCORM。两个标准体系是涵盖的关系，并非是对立的关系。正式学习的标准规范包括了非正式学习的标准部分。在实际的应用中，普遍缺少对标准的正确理解和应用，一些原本是正式学习的项目过分追求AICC/SCORM资源相关标准，而忽视网络学习整体性的标准化。同样，在很多企业等组织机构内部应用的非正式学习e-Learning项目中忽视AICC/SCORM标准，这对后期的内容建设是不利的。&lt;br /&gt;&lt;br /&gt;12.内容资源&lt;br /&gt;&lt;br /&gt;在正式学习中，书籍、教材等内容性资源是辅助资源，知识学习主要还是来源于教师的传授。而传统非正式学习中外部一切资源都是平等的关系。正式学习的e- Learning中，课件等内容资源同样也是学习的辅助性资源，学习过程中教师与学习者、学习者之间的交互是学习的主要部分。非正式学习的e- Learning中内容资源则是主要部分，资源建设对于非正式学习的e-Learning应用是最为重要的。国内的现实情况是网络学院、网校等正式学习中，都将学习网络课件当作学习的主要方式，将辅助手段当作主要手段，从而忽视了教师在网络教学中的作用。麻省理工学院（MIT）的开放课程计划（OCW）计划恰好证实了课件资源的原本价值——只能做为辅助学习（教学）使用。&lt;br /&gt;&lt;br /&gt;13.技术平台&lt;br /&gt;&lt;br /&gt;　　正式学习与非正式学习的e-Learning，对于技术支撑平台（&lt;a target="_self"&gt;&lt;u&gt;&lt;strong&gt; LMS&lt;/strong&gt; &lt;/u&gt;&lt;/a&gt;）有着不同的需求。正式学习强调对人员、角色的管理，技术上强调平台的沟通与协作能力；在教学方面强调对教学活动设计有良好的支持；管理上强调综合教务管理的支持。支持正式学习的技术平台以满足教师网络教学需要为首要目的。非正式学习强调对内容、学习资源的管理，因此，非正式学习平台对内容的分类、检索、媒体多样性、智能化等方面要求有较强的支持。支持非正式学习的技术平台考虑更多的是交付计算机网络以更多的教学任务，目的是节约有限的教师资源。&lt;br /&gt;&lt;br /&gt;14.学习模式&lt;br /&gt;&lt;br /&gt;正式学习与非正式学习的e-Learning对应着不同的学习模式。正式学习强调教师的主导作用，对学习者而言是一种引领式的学习模式。非正式学习强调学习者的自我主动学习动机，对学习者而言是一种自主式的学习模式。国内现实情况是由于没有认识到正式学习与非正式学习的区别，在学习模式的选择上采用几乎清一色的自主学习模式。很多网络教育运营机构认为网络教育就只有自主学习一种模式。然而国外成功的正式学习的网络教育中，绝大多数采用的是引领式学习模式。一些网络教育机构认为只要在自主学习模式上增加教师的辅导、讨论等交互活动就是引领式学习模式，这种认识是错误的。引领式学习模式是完全建立在正式学习之上的学习模式，形式上更接近传统教育。凤凰城在线大学CEO布莱恩-穆勒形象地描述引领式学习是“课堂教学精确的翻版”。&lt;br /&gt;&lt;br /&gt;15.应用领域&lt;br /&gt;&lt;br /&gt;e-Learning在教育领域的应用以及面向个人的网络教育（B2C模式）多数都属于正式学习，包括网络学院、大学，各类型的网校等。e- Learning在企业等组织机构的应用有属于正式学习范畴的应用，例如：企业网络大学、网络培训中心等；也有属于非正式学习范畴的应用，例如:企业中的知识管理、网络学习社区等。e-Learning在国内企业中的应用多是按正式学习来设计规划的，属于部门级（人力资源/教育培训）的应用。在国外企业中的应用近年来更偏向非正式学习，在企业级的人力资本发展管理（HCM）理念下得到广泛应用。网络环境下正式学习的最佳应用典范是英国开放大学（OU）、美国凤凰城在线大学（UOP）等网络教育机构；正式学习的最佳应用典范是&lt;a target="_self"&gt;&lt;u&gt;&lt;strong&gt; Google&lt;/strong&gt; &lt;/u&gt;&lt;/a&gt;、Baidu等网络内容搜索机构。&lt;br /&gt;&lt;br /&gt;16.发展趋势&lt;br /&gt;&lt;br /&gt;网络环境下正式学习的发展趋势始终以教师如何利用网络进行有效教学为方向，技术被作为一种辅助手段。其中，网络学习活动设计与管理（Learning Active Management）是发展的重点方向。近年来，很多网络学习项目经过综合测评，学习者学习效果已经超过传统的教室学习方式，这些成果都是与网络化学习活动的深入研究和应用分不开的。网络环境下非正式学习的发展趋势始终以计算机、网络如何更好提供和传递知识为方向，技术被作为一种主要的手段。其中，对学习内容的智能化管理（Learning Content Management）是发展的重点方向。学习内容管理系统（LCMS）的应用以及SCORM标准的实施等都是网络环境下非正式学习的典型标志。&lt;br /&gt;&lt;br /&gt;以上我们从正式学习与非正式学习两个不同角度重新认识了e-Learning，我们看到的是截然不同，甚至完全对立的两种e-Learning。过去，在我们没有将视角转向学习的时候，两种e-Learning是完全交织混合在一起的，甚至现在仍然有很多网络教育机构说不清楚自己到底做的是正式学习还是非正式学习。不同类型的学习对应着不同的理论、技术和方法，成功的e-Learning项目在学习类型的定位上是没有含糊的，本文前面提到国外成功的e- Learning应用都有清晰的定位，这就是国内外e-Learning应用有如此大的差别的本质原因。我们希望国内e-Learning应用者都应该转换视角，回归到对学习客观规律的认识中，从正式学习与非正式学习的角度思考e-Learning，重新调整自己的定位，只有这样才能真正走出e- Learning的迷局。 &lt;/p&gt;&lt;img src="http://community.studyez.com/aggbug.aspx?PostID=53793" width="1" height="1"&gt;</description><category domain="http://community.studyez.com/blogs/zhaoyang0618/archive/tags/E-learning/default.aspx">E-learning</category></item><item><title>PostMessage的一个特殊用途</title><link>http://community.studyez.com/blogs/zhaoyang0618/archive/2007/07/16/postmessage.aspx</link><pubDate>Mon, 16 Jul 2007 09:59:00 GMT</pubDate><guid isPermaLink="false">7b76beae-6234-4d72-a620-43d6f17cfae8:53533</guid><dc:creator>zhaoyang0618</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;在使用MFC编程的时候遇上了这样一个怪异的问题：&lt;/p&gt;
&lt;p&gt;我的对话框里面有一个WebBrowser控件, 我希望对话框打开的时候能够显示我需要的数据, 这是一个动态改变WebBrowser里面的数据的操作, 我响应了DocumentComplete消息,可是很快就发现有这样一个问题: 每次更改都不能成功, 可是在我进行调试, 假如一个MessageBox的时候,这个修改就是成功的, 同样的, 在对话框打开之后, 使用其它操作, 例如点击按钮来修改WebBrowser的数据也是成功的, 这下问题变得怪异了. &lt;/p&gt;
&lt;p&gt;后来请教了同事, 在这里使用了PostMessage之后,问题以外解决, 就是在响应DocumentComplete消息的地方, 我不再直接修改WebBrowser数据, 而是调用PostMessage发送某个自定义消息, 在这个自定义消息接受处进行修改.&lt;/p&gt;
&lt;p&gt;类似的问题其他地方也出现过, 例如以前有一些操作, 本来是在按钮里面处理(OnAddClick)的, 而且只要是用户点击按钮, 操作就会正常完成, 可是如果我在某个函数里面直接调用这个按钮处理函数(例如OnAddClick), 就会出现操作失败. &lt;/p&gt;
&lt;p&gt;问题根源估计和异步操作有关. 所以应该注意PostMessage和SendMessage的差异.&lt;/p&gt;&lt;img src="http://community.studyez.com/aggbug.aspx?PostID=53533" width="1" height="1"&gt;</description><category domain="http://community.studyez.com/blogs/zhaoyang0618/archive/tags/_A18B977B3A67167F0B7A_/default.aspx">计算机编程</category><category domain="http://community.studyez.com/blogs/zhaoyang0618/archive/tags/MFC_2F00_VC/default.aspx">MFC/VC</category></item><item><title>关于CCheckListBox的一点用法</title><link>http://community.studyez.com/blogs/zhaoyang0618/archive/2007/07/13/cchecklistbox.aspx</link><pubDate>Fri, 13 Jul 2007 11:58:00 GMT</pubDate><guid isPermaLink="false">7b76beae-6234-4d72-a620-43d6f17cfae8:53411</guid><dc:creator>zhaoyang0618</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.studyez.com/blogs/zhaoyang0618/rsscomments.aspx?PostID=53411</wfw:commentRss><comments>http://community.studyez.com/blogs/zhaoyang0618/archive/2007/07/13/cchecklistbox.aspx#comments</comments><description>&lt;p&gt;在MFC程序中使用CCheckListBox的时候, 如果使用对话框模版, 需要把列表框设置成Owner Draw, Fixed的, 最好带上has string, 这里主要是说明如何获得点击选择的消息, 选中,或者取消选中, 在察看源代码之后可以发现, 这个时候CCheckListBox会向父窗口发送一个WM_COMMAND的消息, 消息的WPARAM中低位表示的CCheckListBox的ID, 高位是CLBN_CHKCHANGE(40), 所以对于MFC程序, 重载OnCommand即可. 或者MFC提供了宏ON_CLBN_CHKCHANGE(id, memberfunc)也可以.&lt;/p&gt;&lt;img src="http://community.studyez.com/aggbug.aspx?PostID=53411" width="1" height="1"&gt;</description><category domain="http://community.studyez.com/blogs/zhaoyang0618/archive/tags/_A18B977B3A67167F0B7A_/default.aspx">计算机编程</category><category domain="http://community.studyez.com/blogs/zhaoyang0618/archive/tags/MFC_2F00_VC/default.aspx">MFC/VC</category></item><item><title>关于GetDIBits函数的使用问题</title><link>http://community.studyez.com/blogs/zhaoyang0618/archive/2007/05/28/_73518E4E_GetDIBits_FD51706584767F4F2875EE959898_.aspx</link><pubDate>Mon, 28 May 2007 12:10:00 GMT</pubDate><guid isPermaLink="false">7b76beae-6234-4d72-a620-43d6f17cfae8:49594</guid><dc:creator>zhaoyang0618</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.studyez.com/blogs/zhaoyang0618/rsscomments.aspx?PostID=49594</wfw:commentRss><comments>http://community.studyez.com/blogs/zhaoyang0618/archive/2007/05/28/_73518E4E_GetDIBits_FD51706584767F4F2875EE959898_.aspx#comments</comments><description>最近在编程的时候需要获取位图的二进制数据, 在使用GetDIBits函数的时候发现一个古怪的问题, 虽然解决了其中的问题, 但是没有找到其中的原因.这里描述一些遇到的问题.&lt;br /&gt;第一次：为了从位图句柄得到数据, 创建了内存设备描述句柄, 而后根据MSDN描述, 两次调用GetDIBits函数, 第一次得到位图的参数, 第二次获得二进制数据, 最后发现我在Debug模式下执行没有任何问题(实际上是有问题, 只是程序不会报错), 可是在Release下就会出现严重的错误: 操作的内存是只读的. 后来仍旧在Debug下跟踪发现, 在第二次调用GetDIBits的时候, 内存设备描述句柄被改变了. 为了发现这个问题, 调试的时候使用了VC 6.0 带的BoundsChecker. 于是修改程序, 通过GetObject获取位图数据, 直接一次调用GetDIBits, 解决问题. &lt;br /&gt;第二次：原以为上面解决之后就一切搞定了, 很快就又出现一个问题, 有一位用户的机器上分辨率的色素是16位色, 我们的程序一执行就出错, 而且还是只读内存问题, 经过跟踪定位, 发现又是这个GetDIBits函数出现问题了. 事情非常凑巧, 我们读取的位图大小是77*22, 我们发现只要使用了这个函数, 程序就出错, 不用这个函数, 程序没有问题, 注意到又是内存问题, 我们怀疑是申请的内存小了, 造成越界了. 于是我们再次回到MSDN的路, 在前面传递空地址调用GetDIBits, 获取位图的数据看看, 结果发现它得到的位图的大小居然是78*22, 和GetObject得到的信息不一样. 问题的解决也很简单, 我们调整了位图大小(78*22). 出现这个问题的原因应该是字节对齐的原因. &lt;br /&gt;于是第二次出现问题的原因时找到了, 可以第一次的原因呢? 因为按照第二次的原因, 我应该使用两次调用GetDIBits, 可是这样会不会会带第一次的情形呢? 测试中... 失败了, 确实会回到第一种情况!&lt;img src="http://community.studyez.com/aggbug.aspx?PostID=49594" width="1" height="1"&gt;</description><category domain="http://community.studyez.com/blogs/zhaoyang0618/archive/tags/_A18B977B3A67167F0B7A_/default.aspx">计算机编程</category><category domain="http://community.studyez.com/blogs/zhaoyang0618/archive/tags/MFC_2F00_VC/default.aspx">MFC/VC</category></item><item><title>Applications=Code+Markup 读书笔记2 第一章 The Application And The Window (1)</title><link>http://community.studyez.com/blogs/zhaoyang0618/archive/2007/05/27/Applications_3D00_Code_2B00_Markup-_FB8B664E147BB08B_2-_2C7B004EE07A_-The-Application-And-The-Window.aspx</link><pubDate>Sun, 27 May 2007 09:29:00 GMT</pubDate><guid isPermaLink="false">7b76beae-6234-4d72-a620-43d6f17cfae8:49529</guid><dc:creator>zhaoyang0618</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.studyez.com/blogs/zhaoyang0618/rsscomments.aspx?PostID=49529</wfw:commentRss><comments>http://community.studyez.com/blogs/zhaoyang0618/archive/2007/05/27/Applications_3D00_Code_2B00_Markup-_FB8B664E147BB08B_2-_2C7B004EE07A_-The-Application-And-The-Window.aspx#comments</comments><description>&lt;p&gt;这一章的程序都非常简单, 但是在这一章会形成一个简单的约定, 本书的大部分例子都将采取类似的处理: WPF程序基本上都和窗口相关, 于是我们都会从Window类继承一个类, 然后构建这个类的一个实例. &lt;/p&gt;
&lt;p&gt;例子1 SayHello.cs&lt;/p&gt;
&lt;p&gt;&lt;i&gt;using System;&lt;br /&gt;using System.Windows;&lt;br /&gt;&lt;br /&gt;namespace Petzold.SayHello&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; class SayHello&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [STAThread]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void Main()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Window win = new Window();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; win.Title = &amp;quot;Say Hello&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; win.Show();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Application app = new Application();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; app.Run();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/i&gt;&lt;br /&gt;这个程序中最值得注意的就是System.Window命名空间, 在这个命名空间下包含了最基本的WPF类, 结构, 接口, 委托等等. 基本上WPF相关的程序都会使用System.WIndow前缀的命名空间, 不过System.Window.Form命名空间重点基本上和Windows Form编程有关, 而其中的System.WIndows.Form.Integration命名空间的类, 接口等用于WPF和Windows Form之间的交互. System.Window最常用的就是Application和Window这两个类了. &lt;/p&gt;
&lt;p&gt;静态函数Main函数是整个程序的起点. 在Main之前必须说明属性STAThread, 使用不严格的说法, 可以认为就是该程序不会在运行时使用多线程.&lt;/p&gt;
&lt;p&gt;首先程序构造了一个标准的Window对象, 其中涉及到了Window的第一个属性Title, 最后就是程序中Application对象执行Run方法,&amp;nbsp; 该方法将是整个程序进入消息循环, 程序可以接受用户输入了.&lt;/p&gt;
&lt;p&gt;Application和Window类的继承关系&lt;/p&gt;
&lt;p class="docText"&gt;&lt;span class="docEmphasis"&gt;Object&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="docEmphasis"&gt;DispatcherObject&lt;/span&gt;&amp;nbsp;(abstract)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="docEmphasis"&gt;Application&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="docEmphasis"&gt;DependencyObject&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="docEmphasis"&gt;Visual&lt;/span&gt;&amp;nbsp;(abstract)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="docEmphasis"&gt;UIElement&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="docEmphasis"&gt;FrameworkElement&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="docEmphasis"&gt;Control&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="docEmphasis"&gt;ContentControl&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="docEmphasis"&gt;Window&lt;/span&gt;&lt;br /&gt;在程序中增加自己的消息处理也很简单.&lt;/p&gt;
&lt;p class="docText"&gt;例子2 &lt;span class="docEmphStrong"&gt;HandleAnEvent&lt;/span&gt;&lt;/p&gt;
&lt;p class="docText"&gt;&lt;span class="docEmphStrong"&gt;using System;&lt;br /&gt;using System.Windows;&lt;br /&gt;using System.Windows.Input;&lt;br /&gt;&lt;br /&gt;namespace Petzold.HandleAnEvent&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; class HandleAnEvent&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [STAThread]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void Main()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Application app = new Application();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Window win = new Window();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; win.Title = &amp;quot;Handle An Event&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; win.MouseDown += WindowOnMouseDown;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; app.Run(win);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static void WindowOnMouseDown(object sender, MouseButtonEventArgs args)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Window win = sender as Window;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string strMessage = string.Format(&amp;quot;Window clicked with {0} button at point ({1})&amp;quot;, args.ChangedButton, args.GetPosition(win));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MessageBox.Show(strMessage, win.Title);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;这里响应了一个鼠标消息.&amp;nbsp; 注意处理消息的函数WindowOnMouseDown, 其中对于sender的处理, sender是触发MouseDown消息的对象, 是一个Window对象, 在这里使用类型转换重新得到Window对象, 然后得到这个Window对象的标题(Title),&amp;nbsp; 还有另一种方法得到这个窗口, Application中又一个静态成员Current, 其中有MainWindow属性. 从这个MainWindow名字可以看出一个应用程序可以有多个窗口的. 在后面的例子中有一个例子ThrowWindowParty&lt;/span&gt;&lt;/p&gt;&lt;table cellpadding="5" cellspacing="0"&gt;&lt;tr&gt;
&lt;td class="docTableCell" align="left"&gt;
&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="docTableCell" align="left"&gt;
&lt;p class="docText"&gt;
&lt;/p&gt;&lt;div class="docText"&gt;&lt;pre&gt;//-------------------------------------------------&lt;br /&gt;// ThrowWindowParty.cs (c) 2006 by Charles Petzold&lt;br /&gt;//-------------------------------------------------&lt;br /&gt;using System;&lt;br /&gt;using System.Windows;&lt;br /&gt;using System.Windows.Input;&lt;br /&gt;&lt;br /&gt;namespace Petzold.ThrowWindowParty&lt;br /&gt;{&lt;br /&gt;    class ThrowWindowParty: Application&lt;br /&gt;    {&lt;br /&gt;        [STAThread]&lt;br /&gt;        public static void Main()&lt;br /&gt;        {&lt;br /&gt;            ThrowWindowParty app = new&lt;img src="http://community.studyez.com/controlpanel/blogs/images/ccc.gif" alt="" align="left" border="0" height="9" width="14" /&gt; ThrowWindowParty();&lt;br /&gt;            app.Run();&lt;br /&gt;        }&lt;br /&gt;        protected override void OnStartup(StartupEventArgs args)&lt;br /&gt;        {&lt;br /&gt;            Window winMain = new Window();&lt;br /&gt;            winMain.Title = &amp;quot;Main Window&amp;quot;;&lt;br /&gt;            winMain.MouseDown += WindowOnMouseDown;&lt;br /&gt;            winMain.Show();&lt;br /&gt;&lt;br /&gt;            for (int i = 0; i &amp;lt; 2; i++)&lt;br /&gt;            {&lt;br /&gt;                Window win = new Window();&lt;br /&gt;                win.Title = &amp;quot;Extra Window No. &amp;quot; + &lt;img src="http://community.studyez.com/controlpanel/blogs/images/ccc.gif" alt="" align="left" border="0" height="9" width="14" /&gt;(i + 1);&lt;br /&gt;             win.Show();&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        void WindowOnMouseDown(object sender,&lt;img src="http://community.studyez.com/controlpanel/blogs/images/ccc.gif" alt="" align="left" border="0" height="9" width="14" /&gt; MouseButtonEventArgs args)&lt;br /&gt;        {&lt;br /&gt;            Window win = new Window();&lt;br /&gt;            win.Title = &amp;quot;Modal Dialog Box&amp;quot;;&lt;br /&gt;            win.ShowDialog();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p class="docText"&gt;&amp;nbsp;程序中创建了多个窗口, 其中第一个调用Show的Window是MainWindow (或者说是最初的MainWindow).&amp;nbsp; &lt;br /&gt;&lt;/p&gt;
&lt;img src="http://community.studyez.com/aggbug.aspx?PostID=49529" width="1" height="1"&gt;</description><category domain="http://community.studyez.com/blogs/zhaoyang0618/archive/tags/_A18B977B3A67167F0B7A_/default.aspx">计算机编程</category><category domain="http://community.studyez.com/blogs/zhaoyang0618/archive/tags/.Net3.0_005FD153_/default.aspx">.Net3.0开发</category><category domain="http://community.studyez.com/blogs/zhaoyang0618/archive/tags/Applications_3D00_Code_2B00_Markup/default.aspx">Applications=Code+Markup</category><category domain="http://community.studyez.com/blogs/zhaoyang0618/archive/tags/WPF/default.aspx">WPF</category></item><item><title>林妹妹走了</title><link>http://community.studyez.com/blogs/zhaoyang0618/archive/2007/05/17/_9767B959B959708D864E_.aspx</link><pubDate>Thu, 17 May 2007 12:54:00 GMT</pubDate><guid isPermaLink="false">7b76beae-6234-4d72-a620-43d6f17cfae8:48730</guid><dc:creator>zhaoyang0618</dc:creator><slash:comments>8</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.studyez.com/blogs/zhaoyang0618/rsscomments.aspx?PostID=48730</wfw:commentRss><comments>http://community.studyez.com/blogs/zhaoyang0618/archive/2007/05/17/_9767B959B959708D864E_.aspx#comments</comments><description>&lt;p&gt;&amp;ldquo;陈晓旭慈善基金会（筹备）发布消息说，5月13日18时57分，陈晓旭女士（妙真法师）因患乳腺癌在深圳去世。&amp;rdquo;&amp;nbsp;&lt;/p&gt;&lt;p&gt;林妹妹走了，小时候刚开始接触《红楼梦》的时候并不喜欢这类型的电视剧，当时喜欢的是武侠片，军事题材的，可是随着年龄的增长，也不知道是从哪一天开始，突然之间就喜欢上了《红楼梦》，是的，不知不觉，突然之间，尤其是其中的歌曲旋律，尤其是那首《 葬花吟》，我经常在听到&amp;ldquo; 侬今葬花人笑痴，他年葬侬知是谁&amp;rdquo;，&amp;ldquo; 一朝春尽红颜老，花落人亡两不知&amp;rdquo;时，心里总有一股不明的悸动。&lt;/p&gt;&lt;p&gt;斯人已逝，特为此记.&lt;/p&gt;&lt;p&gt;这里给出其中《葬花吟》和《枉凝眉》的歌词。&lt;/p&gt;&lt;p&gt;葬花吟&lt;br /&gt;花谢花飞飞满天，红消香断有谁怜？&lt;br /&gt;游丝软系飘春榭，落絮轻沾扑绣帘。&lt;br /&gt;一年三百六十日，风刀霜剑严相向。&lt;br /&gt;明媚鲜妍能几时，一朝漂泊难寻觅。&lt;br /&gt;花开易见落难寻，阶前愁煞葬花人。&lt;br /&gt;独倚花锄偷洒泪，洒上空枝见血痕。&lt;br /&gt;愿奴胁下生双翼，随花飞到天尽头。&lt;br /&gt;天尽头，何处有香丘！&lt;br /&gt;未若锦囊收艳骨，一抔净土掩风流。&lt;br /&gt;质本洁来还洁去，强于污淖陷渠沟。&lt;br /&gt;尔今死去侬收葬，未卜侬身何日丧。&lt;br /&gt;侬今葬花人笑痴，他年葬侬知是谁？&lt;br /&gt;天尽头，何处有香丘！&lt;br /&gt;试看春残花渐落，便是红颜老死时。&lt;br /&gt;一朝春尽红颜老，花落人亡两不知！&lt;/p&gt;&lt;p&gt;枉凝眉&lt;br /&gt;一个是阆苑仙葩，一个是美玉无瑕。&lt;br /&gt;若说没奇缘，今生偏又遇着他；&lt;br /&gt;若说有奇缘，如何心事终虚化！&lt;br /&gt;一个枉自嗟呀，一个空劳牵挂；&lt;br /&gt;一个是水中月，一个是镜中花。&lt;br /&gt;想眼中，能有多少泪珠儿？&lt;br /&gt;怎经得秋流到冬尽，春流到夏！&lt;/p&gt;&lt;img src="http://community.studyez.com/aggbug.aspx?PostID=48730" width="1" height="1"&gt;</description><category domain="http://community.studyez.com/blogs/zhaoyang0618/archive/tags/_9767B959B959_/default.aspx">林妹妹</category><category domain="http://community.studyez.com/blogs/zhaoyang0618/archive/tags/_8967DD510977_/default.aspx">枉凝眉</category><category domain="http://community.studyez.com/blogs/zhaoyang0618/archive/tags/_A27E7C69A668_/default.aspx">红楼梦</category><category domain="http://community.studyez.com/blogs/zhaoyang0618/archive/tags/_48965366ED65_/default.aspx">陈晓旭</category><category domain="http://community.studyez.com/blogs/zhaoyang0618/archive/tags/_9767DB9E8973_/default.aspx">林黛玉</category><category domain="http://community.studyez.com/blogs/zhaoyang0618/archive/tags/_6C84B1821F54_/default.aspx">葬花吟</category></item><item><title>“不能访问Windows Installer服务”问题解决</title><link>http://community.studyez.com/blogs/zhaoyang0618/archive/2007/05/16/_1C200D4EFD80BF8BEE95_Windows-Installer_0D67A1521D20EE959898E389B351_.aspx</link><pubDate>Wed, 16 May 2007 07:31:00 GMT</pubDate><guid isPermaLink="false">7b76beae-6234-4d72-a620-43d6f17cfae8:48492</guid><dc:creator>zhaoyang0618</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.studyez.com/blogs/zhaoyang0618/rsscomments.aspx?PostID=48492</wfw:commentRss><comments>http://community.studyez.com/blogs/zhaoyang0618/archive/2007/05/16/_1C200D4EFD80BF8BEE95_Windows-Installer_0D67A1521D20EE959898E389B351_.aspx#comments</comments><description>今天遇上一位客户在安装软件的时候出现这样的问题：&amp;ldquo;不能访问Windows Installer服务&amp;rdquo;，在网络上搜索得到如下解决方案:&lt;br /&gt;&lt;div class="BlogContent"&gt;&lt;p&gt;&lt;em&gt;如果你的系统是 WinXP，在安装 Office2003 时出现了&amp;ldquo;不能访问 Windows Installer 服务，可能是你在安全摸式下运行 Windows 或 Window Installer 没有正确安装&amp;rdquo;错误（实际上是所有使用 Windows Installer 服务安装的 MSI 格式程序均不能正常安装）；在&amp;ldquo;服务&amp;rdquo;里查看&amp;ldquo;Windows Installer &amp;rdquo;服务的状态，一般为停用，当你试图启用此服务，会发现此服务已被系统禁用，或则 Windows Installer 服务已被标记为删除；而当你尝试重新安装 Windows Installer 服务时，系统提示&amp;ldquo;指定的服务已存在&amp;rdquo;&amp;mdash;&amp;mdash;那这篇文章就是你想要的了。&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;解决方法（在 WinXP/Win2000 上通过）：&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;em&gt;先用记事本编写如下内容，并保存为 &lt;u&gt;installer.reg&lt;/u&gt; 格式文件，双击将文件导入注册表；&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;运行&amp;ldquo;CMD&amp;rdquo;命令提示符，输入&amp;ldquo;&lt;em&gt;msiexec /regserver&lt;/em&gt;&amp;rdquo;并回车；&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;无须重新启动，即刻搞掂！&lt;/em&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p class="Code"&gt;&lt;em&gt;Windows Registry Editor Version 5.00&lt;br /&gt;&lt;br /&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSIServer]&lt;br /&gt;&amp;quot;ImagePath&amp;quot;=-&lt;br /&gt;&amp;quot;ImagePath&amp;quot;=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\&lt;br /&gt;74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,6d,\&lt;br /&gt;00,73,00,69,00,65,00,78,00,65,00,63,00,2e,00,65,00,78,00,65,00,20,00,2f,00,\&lt;br /&gt;56,00,00,00&lt;br /&gt;&lt;br /&gt;; ImagePath = &lt;em&gt;%SystemRoot%\System32\msiexec.exe /V&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;&lt;/div&gt;另外还有一篇文档,&amp;nbsp; 也一起转贴.&lt;br /&gt;&lt;em&gt;&lt;br /&gt;&lt;/em&gt;&lt;div class="content"&gt;&lt;li&gt;&lt;em&gt;&lt;strong&gt;在Windows2000系统下：&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;&lt;p&gt;&lt;em&gt;第一步：点击 开始－－&amp;gt;运行，&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;输入 CMD 命令，在弹出的CMD命令提示符窗口中输入&lt;br /&gt;&amp;ldquo;msiexec /unregserver&amp;rdquo;命令，是为了停掉windows installer服务。 &lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;第二步：下载windows installer服务安装程序包，&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;Windows2000/NT系统的安装程序包为&amp;ldquo;InstMsiW.exe&amp;rdquo;Windows98/ME安装程序包为&amp;quot;InstMsiA.exe&amp;quot;,Windows XP系统则集成了最新版本的Windows Installer v2.0。 &lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;下载&amp;ldquo;InstMsiW.exe&amp;rdquo;安装程序包后，将其用winrar解压开，然后进入到此目录中。 &lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;第三步：右键单击&amp;ldquo;msi.inf&amp;rdquo;文件，点击&amp;ldquo;安装&amp;rdquo;选项，接着右键单击&amp;ldquo;mspatcha.inf &amp;rdquo;文件，点击&amp;ldquo;安装&amp;rdquo;。&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;第四步：在CMD命令提示符下输入&amp;ldquo;msiexec /regserver&amp;rdquo;命令，&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;这样就启动了windows installer服务，重新启动Windows2000系统后，问题就得到解决。 &lt;br /&gt;注意：在安装两个inf文件的过程中，不要重新启动系统，全部操作完成后才能重启，另外，如果系统安装了&amp;rdquo;瑞星病毒防火墙&amp;rdquo;和&amp;ldquo;瑞星网络防火墙&amp;rdquo;，建议在操作过程中关闭瑞星防火墙。 &lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&lt;li&gt;&lt;em&gt;&lt;strong&gt;在Windows XP系统下：&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;&lt;p&gt;&lt;em&gt;第一步：使用记事本编写installer.reg文件，内容如下： &lt;/em&gt;&lt;/p&gt;&lt;blockquote class="code"&gt;&lt;em&gt;Windows Registry Editor Version 5.00 &lt;/em&gt;&lt;p&gt;&lt;em&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSIServer]&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&amp;quot;ImagePath&amp;quot;=- &lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&amp;quot;ImagePath&amp;quot;=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,6d,\&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;00,73,00,69,00,65,00,78,00,65,00,63,00,2e,00,65,00,78,00,65,00,20,00,2f,00,\&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;56,00,00,00 &lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;em&gt;然后将文件保存为&amp;ldquo;.reg&amp;rdquo;格式，双击该文件，将文件内容导入注册表。 &lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;第二步：重新启动电脑进入安全模式（启动时按F8键），然后点击开始－－&amp;gt;运行，输入CMD命令，在弹出的CMD命令提示符窗口中输入&amp;ldquo;msiexec /regserver&amp;rdquo;，最后重新启动系统即可。 &lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;PS：对于上一步，不用进入安全模式，而使用&amp;ldquo;msiexec /unregserver&amp;rdquo;命令即可。&lt;/em&gt;&lt;/p&gt;&lt;/div&gt;还有可能如下:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;论坛上支招的高人真不少，总结起来有四招：一是检查当前用户有没有管理员权限(但我的电脑只有Administrator一个用户)；二是下载最新的Windows Installer 2.0版(&lt;strong&gt;注: 目前最新版已经是3.1了&lt;/strong&gt;)；三是结束进程IKERNEL.EXE后再安装；四是删除系统安装目录Program Files\Common Files\InstallShield\Engine下的所有文件再安装。&lt;br /&gt;&lt;/em&gt;&lt;em&gt;　　我按照高手们所说的一一操作，但依旧无法进行安装！重试过很多次后，&amp;ldquo;拒绝访问&amp;rdquo;四个字提醒了我：难道是C盘访问权限的原因？我的&lt;a href="http://tech.tom.com/1hd.html" target="_blank"&gt;&lt;font color="#0000ff"&gt;硬盘&lt;/font&gt;&lt;/a&gt;是NTFS 格式的，前一段时间RPC漏洞弄得人心惶惶，我打上了补丁后还不放心，删除了Everyone组，另添加了Administrator对硬盘的完全控制权。难道是这个原因？我试着在&amp;ldquo;C盘&amp;rarr;属性&amp;rarr;安全&amp;rdquo;选项卡下添加Everyone组后，启动Windows Installer服务，居然成功了！&lt;br /&gt;&lt;/em&gt;&lt;em&gt;　　重试几次后发现，其实只需要给Everyone组赋予&amp;ldquo;读取及运行&amp;rdquo;、&amp;ldquo;列出文件夹目录&amp;rdquo;、&amp;ldquo;读取&amp;rdquo;三项权限其中之一，就可以解决Windows Installer无法启动的问题。如果顾及隐私和安全问题的话，只赋予Everyone组&amp;ldquo;列出文件夹目录&amp;rdquo;权限即可。使用Windows 2000/XP和NTFS分区的朋友们，如果你的Windows Installer也出了问题，可别忘了我的这番经历哦！&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;这篇文档更详细.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;现在安装软件时提示：不能访问windows Installer服务，可能是你在安全模式下运行windows或者windows Installer 没有正确地安装，请和你的支持人员联是以获得帮助。导致任何的软件都无法安装和卸载&lt;br /&gt;&lt;/em&gt;&lt;p&gt;&lt;em&gt;一、微软Windows Installer 组件介绍：&lt;br /&gt;微软Windows Installer作为Win2K/WinXP的组件之一，是专门用来管理和配置软件服务的工具。在Win95、Win98、WinMe与WinNT4， 0下，作为额外的产品提供，允许用户有效地安装与配置软件产品与应用程序。新的Installer提供给软件产品新的特性，例如使用命令行安装产品、增加了用户的可定制性。&lt;br /&gt;Windows Installer 软件安装技术。该技术包括适用于 32 位 Windows 操作系统的 Windows Installer 服务器，以及一个用于存储有关配置和安装信息的新软件包文件格式。&lt;br /&gt;Windows Installer 不仅仅是一个安装程序，它还是一个可扩展的软件管理系统。Windows Installer 管理软件的安装，管理软件组件的添加和删除，监视文件复原，并通过使用回滚来维护基本的灾难恢复。&lt;br /&gt;此外，Windows Installer 还支持从多个源安装和运行软件，并且可以由要安装自定义程序的开发人员定制。&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;二、Windows Installer 的功能包括： &lt;br /&gt;? 在安装失败时将计算机还原为原始状态：Windows Installer 跟踪在程序安装过程中对系统进行的所有更改。如果安装失败，Installer 可以将系统恢复到其初始状态。这称为&amp;ldquo;回滚&amp;rdquo;。 &lt;br /&gt;? 帮助防止特定形式的程序之间产生冲突：正在安装或卸载的程序可能会导致计算机上已安装的另一个程序出现问题，甚至导致计算机停止响应（挂起）。 Installer 可以强制实施一些安装规则，以帮助防止当安装操作更新由现有程序共享的动态链接库 (DLL) 文件时，或当卸载操作删除由另一个程序共享的 DLL 文件时出现冲突。 &lt;br /&gt;? 诊断并修复损坏的程序：程序可以要求 Installer 确定已安装的程序是否缺少文件，或者文件是否已损坏。然后，它可以要求该服务根据需要再次只复制已发现丢失或损坏的文件来修复该程序。 &lt;br /&gt;? 可靠地卸载现有程序：Installer 可以可靠地卸载以前安装的任何程序，并删除所有相关联的注册表条目和程序文件，但其他已安装的软件所共享的文件及注册表条目除外。 &lt;br /&gt;? 支持按需安装程序功能：可以指示 Installer 首先安装程序的最小子集。之后，在您首次使用需要附加组件的功能时，会自动安装附加组件。 &lt;br /&gt;? 支持无人参与的程序安装：Installer 支持根据管理员的指令使用脚本来安装程序。 &lt;br /&gt;Windows Installer 技术分为以下两部分，它们结合在一起工作：客户端安装服务 (Msiexec.exe) 和 Microsoft 软件安装 (MSI) 软件包文件。Windows Installer 使用软件包文件中包含的信息安装程序。&lt;br /&gt;Msiexec.exe 程序是 Windows Installer 的一个组件。当安装程序调用 Msiexec.exe 时，它使用 Msi.dll 读取软件包 (.msi) 文件，应用任何转换 (.mst) 文件，并合并安装程序所提供的命令行选项。Installer 执行所有与安装有关的任务，包括将文件复制到硬盘、修改注册表、在桌面上创建快捷方式，以及在必要时显示对话框以提示用户输入安装首选项。&lt;br /&gt;在计算机上安装 Windows Installer 后，它将更改注册的 .msi 文件的文件类型，以便当您双击 .msi 文件时，将运行 Msiexec.exe。&lt;br /&gt;每个 MSI 软件包文件都包含一个关系类型的数据库，用于存储在各种安装方案中安装（或卸载）该程序所需的指令和数据。 &lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;三、Windows Installer出错的解决方案&lt;br /&gt;　　Windows Installer（windows安装服务）是一种通用的软件发布方式，现在许多软件都使用windows Installer作为自己的安装程序，有时因为各种原因以及windows Installer本身的缺陷，会导致windows Installer出错。&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;　　症状一：删除某个程序后，在运行某些软件时，老会弹出一个&amp;ldquo;windows正在配置Windows Installer，请稍候&amp;rdquo;的窗口。&lt;br /&gt;　　解决办法：&lt;br /&gt;　　1、重新安装Windows Installer，office XP安装盘的根目录有两个名为instmsi.exe和InstMsiW.exe的文件，instmsi.exe用于win9X/Me,InstMsiW.exe用于Win2000/XP；&lt;br /&gt;　　2、打开组策略&amp;rarr;计算机配置&amp;rarr;管理模板&amp;rarr;Windows组件&amp;rarr;Windows Installer&amp;rarr;禁用Windows Installer，只是这样一来，很多软件就有能安装了，此法用于Win2000/XP。&lt;br /&gt;　　3、请看本文最后的&amp;ldquo;终级解决方案&amp;rdquo;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;　　症状二：Win2000/XP安装软件时提示&amp;ldquo;无法访问windows安装程序，服务中windows Installer状态为停止，不能启动&amp;rdquo;&lt;br /&gt;　　解决办法：&lt;br /&gt;　　1、命令提示符下输入：misiexec　/regserver&lt;br /&gt;　　2、在&amp;ldquo;管理工具&amp;rdquo;&amp;rarr;&amp;ldquo;服务&amp;rdquo;中启动windows Installer&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;　　症状三：Win2000/XP安装软件时提示&amp;ldquo;不能访问Windows Installer服务&amp;hellip;&amp;hellip;&amp;rdquo;&lt;br /&gt;　　解决办法：&lt;br /&gt;　　1、检查当前用户有无管理员权限；&lt;br /&gt;　　2、结束进程Ikernel，exe后再安装；&lt;br /&gt;　　3、删除系统安装目录Program FilesCommon FilesInstallShieldEngine下的所有文件再安装。&lt;br /&gt;　　4、首先，运行&amp;ldquo;msiexec /unregserver&amp;rdquo;,停止Windows Installer服务；&lt;br /&gt;　　接着，安装InstMsiW.exe（office XP安装盘的根目录下有，也可以从网上下载，地址为：http： //download.microsoft.com/download/WinfowsInstaller/Install/2.0/NT45/EN-US/InstMsiW.exe), 用Winrar解压至设定的目录；进入目录，右键点击msi.inf选&amp;ldquo;安装&amp;rdquo;，右键点击mspatcha.inf,选安装；&lt;br /&gt;　　最后运行&amp;ldquo;msiexec /regserver&amp;rdquo;启用服务。&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;　　症状四：安装软件时提示&amp;ldquo;系统管理员设置了系统策略，禁止进行此项安装&amp;rdquo;&lt;br /&gt;　　解决办法：&lt;br /&gt;　　1、尝试用症状三的解决方法；&lt;br /&gt;　　2、打开组策略&amp;rarr;用户配置&amp;rarr;管理模板&amp;rarr;Windows组件&amp;rarr;Windows安装服务&amp;rarr;将&amp;ldquo;禁止从媒体安装&amp;rdquo;设为&amp;ldquo;禁用&amp;rdquo;，将&amp;ldquo;永远以高特权进行安装&amp;rdquo;设置为&amp;ldquo;启用&amp;rdquo;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;四、以上问题的终级解决方案：&lt;br /&gt;　　下载安装微软提供的Windows Installer CleanUp Utility 1.0，它的主要功能是清除程序的Windows Installer配置信息。启动该工具，它会列出目前系统中所有Windows Installer使用安装的软件，选中出问题的软件，然后点&amp;ldquo;Remove&amp;rdquo;按钮即可。&lt;br /&gt;Windows Installer CleanUp Utility 1.0下载地址：http：//www.onlinedown.net/soft/27518.htm&lt;/em&gt;&lt;/p&gt;&lt;img src="http://community.studyez.com/aggbug.aspx?PostID=48492" width="1" height="1"&gt;</description><category domain="http://community.studyez.com/blogs/zhaoyang0618/archive/tags/_A18B977B3A67167F0B7A_/default.aspx">计算机编程</category></item><item><title>Applications=Code+Markup 读书笔记1 引论</title><link>http://community.studyez.com/blogs/zhaoyang0618/archive/2007/05/13/Applications_3D00_Code_2B00_Markup-_FB8B664E147BB08B_1-_155FBA8B_.aspx</link><pubDate>Sun, 13 May 2007 05:35:00 GMT</pubDate><guid isPermaLink="false">7b76beae-6234-4d72-a620-43d6f17cfae8:48322</guid><dc:creator>zhaoyang0618</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.studyez.com/blogs/zhaoyang0618/rsscomments.aspx?PostID=48322</wfw:commentRss><comments>http://community.studyez.com/blogs/zhaoyang0618/archive/2007/05/13/Applications_3D00_Code_2B00_Markup-_FB8B664E147BB08B_1-_155FBA8B_.aspx#comments</comments><description>&lt;p&gt;《&lt;a href="http://www.studyez.com/ResourceLibrary/DatumDetail.aspx?DatumID=11268" target="_blank"&gt;Applications=Code+Markup&lt;/a&gt;》 一书是Charles&amp;nbsp;Petzold(著名的《Windows程序设计》一书的作者)的新作, 书名显然是参考了著名的公式: 程序=算法+数据结构.&amp;nbsp; 目前电子书可以在网络上找到.&lt;/p&gt;&lt;p&gt;这一部分简单介绍一下开发环境的搭配, 以及如何建立第一个应用程序.&lt;/p&gt;&lt;p&gt;WPF全称为Windows Presentation Fondation, 是.Net 3.0的一部分. 所以要进行WPF开发, 必须安装.Net 3.0 SDK, 为了方便, 我们还需要一个IDE开发环境(VS2005), 下面的相关信息来自&lt;a href="http://blog.csdn.net/programmer_editor/archive/2007/03/21/1536252.aspx" target="_blank"&gt;蔡学镛的&amp;quot;WPF精粹&amp;quot;&lt;/a&gt;, 目前他的相关在《程序员》杂志上连载, 另外也可以参考&amp;quot;&lt;a href="http://www.cnblogs.com/tonyqus/archive/2007/04/18/678434.html" target="_blank"&gt;构建完美的WPF开发工作站&lt;/a&gt;&amp;quot;.&lt;/p&gt;&lt;p&gt;&lt;em&gt;WPF应用只能在.NET Framework 3.0的环境中执行，计算机上必须安装：&lt;br /&gt;&lt;/em&gt;&lt;em&gt;1)Windows Vista（自带.NET Framework 3.0）或者&lt;br /&gt;&lt;/em&gt;&lt;em&gt;2)Windows XP/SP2 加装.NET Framework 3.0, 或者&lt;br /&gt;&lt;/em&gt;&lt;em&gt;3)加装.NET Framework 3.0的Windows 2003。&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;如果你是编程员，你的环境除了具备上述的要求之外，还必须配备： Visual Studio 2005 Professional Edition（商业软件）,&amp;nbsp;.NET Framework 3.0 and Windows SDK（免费）, Visual Studio Extensions for WCF, WPF（免费）,上列的免费软件都可以从微软的MSDN网站下载，除此之外，Visual C#已推出 Express Edition，也可以免费下载。你可能想要使用免费的Visual C# Express Edition取代Professional Edition，但是Visual Studio Extensions for WCF, WPF只能搭配Professional Edition的Visual Studio 2005。由于Visual Studio 2005（以及Visual C# 2005 Express&lt;br /&gt;Edition）内附的.NET Framework SDK是2.0版，所以必须额外安装.NET Framework 3.0，并搭配Visual Studio Extensions for WCF, WPF。估计微软将在2007年底推出新版的Visual Studio， 届时只要直接安装Visual Studio就行了， 不用像现在这么辛苦，拼拼凑凑地四处下载和安装软件。&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;如果你无法取得 Visual Studio 2005 Professional Edition，也不想安装巨大的Windows SDK（这东西大得吓人，需要1.15GB），那么直接利用免费的VisualC# Express Edition和免费的.NET Framework 3.0即可， 一样可以写WPF程序， 只是会有两个缺点：&lt;br /&gt;&lt;/em&gt;&lt;em&gt;1) 在Visual C#中没有WPF的template，你必须手动写每一行程序，且手动加入相关DLL的参考。&lt;br /&gt;&lt;/em&gt;&lt;em&gt;2) 不能使用XAML。&lt;/em&gt;&lt;/p&gt;&lt;p&gt;顺便提一下&amp;nbsp;, 微软下一代开发工具Visual Studio 9.0 (Codename Orcas) 已经发布社区预览版, 其中已经有WPF, WCF, WWF等项目, 不过我认为从学习角度, 最好是从头开始完全手工创建WPF项目.&lt;/p&gt;&lt;p&gt;下面开始第一个程序的建立, 这里的步骤对于本书中的例子基本上适用了.&lt;br /&gt;其中就涉及到手工添加DLL部分:&lt;br /&gt;1) 打开Visual Studio 2005, 选择&amp;quot;File&amp;quot;菜单中的&amp;quot;New Project&amp;quot;;&lt;br /&gt;2) 在&amp;quot;New Project&amp;quot;对话框中选择 Visual C#, Windows, Empty Project. 为我们的项目设置一个存储位置, 同时输入项目名称(HelloWorld);&lt;br /&gt;3) 在Solution Explorer中的右击其中Reference一栏, 选择Add Reference,&amp;nbsp; 在列表中选择.Net的PresentationCore, PresentationFramework, System, and WindowsBase, 基本上有这四个DLL就可以测试本书的大部分例子了.&lt;br /&gt;4) 在Solution Explorer中的右击项目名称HelloWorld, 选择Add, New Item, 为此项目添加一个class, 同样需要一个名称,这里仍然使用HelloWorld, 这个时候会有一个HelloWorld.cs文件, 编写代码。&lt;br /&gt;5) 编译我们的项目, 执行即可.&lt;br /&gt;6)默认情况下执行程序的话, 会出现Console窗口,&amp;nbsp;&amp;nbsp;在Solution Explorer中的右击项目名称HelloWorld, 选择Properties,修改Application的Output type为Windows Application即可.&lt;/p&gt;&lt;p&gt;下面给出一个简单的程序:&lt;/p&gt;&lt;p&gt;//HelloWorld.cs&lt;br /&gt;using System;&lt;br /&gt;using System.Windows;&lt;br /&gt;&lt;br /&gt;namespace HelloWorld&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; class HelloWorld&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [STAThread]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void Main()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Window win = new Window();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; win.Title = &amp;quot;HelloWorld&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; win.Content = &amp;quot;Hello World!&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; win.Show();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;n