<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>QGY18's Blog</title><description>Welcome To QGY18's Blog(Ajax Edition)</description><link>http://www.qgy18.com/html/</link><language>zh-cn</language><generator>QGY18's Blog(Ajax Edition)</generator><item><title><![CDATA[本博客不再更新啦]]></title><link>http://www.qgy18.com/html/article296.htm</link><author></author><pubDate>2008-05-31 21:16:00</pubDate><description><![CDATA[<p>这个博客程序是06年写的，现在有些功能不完善，就不再继续用啦。这上面的文章以转载偏多，就不一一转到新系统里了。</p>
<p>新博客的地址是<a href="http://www.qgy18.com">http://www.qgy18.com</a>，采用开源<a href="http://wordpress.org/">WordPress</a>系统搭建。订阅地址为<a href="http://feed.qgy18.com">http://feed.qgy18.com</a>。</p>
<p>旧博客地址改为<a href="http://old.qgy18.com">http://old.qgy18.com</a>，静态页面索引地址为<a href="http://old.qgy18.com/html">http://old.qgy18.com/html</a>。</p>
<p>&nbsp;</p>]]></description></item>	<item><title><![CDATA[祈祷]]></title><link>http://www.qgy18.com/html/article295.htm</link><author></author><pubDate>2008-05-13 08:01:53</pubDate><description><![CDATA[<P><A href="http://hi.baidu.com/baidu/blog/item/e97e4190aa752b88a977a49f..html" target=_blank><span><IMG border=0 src="http://anriy000.512j.com/UserFiles/image/20085132005873092.GIF" width=468 height=59></span></A></P>
<P>&nbsp;</P>]]></description></item>	<item><title><![CDATA[QGYWebIM完整代码：）&nbsp;Top]]></title><link>http://www.qgy18.com/html/article293.htm</link><author></author><pubDate>2008-04-15 16:05:36</pubDate><description><![CDATA[<p>&nbsp;&nbsp;&nbsp; 恩，之前有很多喜欢这个东东的人给我打电话，希望得到完整的代码，前段时间我比较忙就暂时搁下了。今天我把整个代码整理了一遍，给出完整功能的版本供大家交流。</p>
<p>&nbsp;&nbsp;&nbsp; 使用说明：<a href="http://old.qgy18.com/webim/readme.html">http://old.qgy18.com/webim/readme.html</a></p>
<p>&nbsp;&nbsp;&nbsp; 下载地址：<a href="http://old.qgy18.com/webim/webim.rar">http://old.qgy18.com/webim/webim.rar</a></p>
<p>&nbsp;&nbsp;&nbsp; 运行截图：<a href="http://picasaweb.google.com/quguangyu/QGYWebIM">http://picasaweb.google.com/quguangyu/QGYWebIM</a></p>
<p>&nbsp;&nbsp;&nbsp; 测试地址：<a href="http://www.shufou.com/chat">http://www.shufou.com/chat</a></p>
<p>&nbsp;&nbsp;&nbsp; PS：最近一直在看关于前端的书，自我感觉对UI、UE以及JS的认识比以前进步了一些，以现在的眼光来看春节做的这个东东可以挑出一大堆缺点来。对此我很欣慰，人总是要进步的嘛。</p>
<p>&nbsp;&nbsp;&nbsp; 在PS：本次开放代码的WebIM版本仅仅是为了展示前端技术，后台程序性能并不高。如果你的应用对性能有进一步的要求（如希望采用.Net+MSSql或php+mySql做为后端），或者需要更多的功能（如群聊、系统广告支持等等），请联系我购买定制版本。</p>]]></description></item>	<item><title><![CDATA[JSON简介]]></title><link>http://www.qgy18.com/html/article292.htm</link><author></author><pubDate>2008-03-15 02:22:14</pubDate><description><![CDATA[Abstract:&nbsp;转载自：http://dev2dev.bea.com.cn/techdoc/2007/03/java-soa-introduction-json.html
摘要
　　XML——这种用于表示客户端与服务器间数据交换有效负载的格式，几乎已经成了Webservices的同义词。然而，由于Ajax和REST技术的出现影响了应用程序架构，这迫使人们开始寻求`XML的替代品，如：JavaScriptObj&nbsp;&nbsp;&nbsp;（31784words)]]></description></item>	<item><title><![CDATA[买了个数码相机]]></title><link>http://www.qgy18.com/html/article291.htm</link><author></author><pubDate>2008-03-11 14:51:04</pubDate><description><![CDATA[<p>&nbsp;&nbsp;&nbsp; 这个很多年前的愿望终于实现了，型号是sony的t70，传张图片上来。</p>
<p align="center"><a target="_blank" href="/userfiles/Image/2007824105929405(1).jpg"><img height="300" width="400" align="middle" border="0" alt="" src="/userfiles/Image/2007824105929405(1).jpg" /></a></p>]]></description></item>	<item><title><![CDATA[浅谈javascript函数劫持]]></title><link>http://www.qgy18.com/html/article290.htm</link><author></author><pubDate>2008-02-20 08:24:42</pubDate><description><![CDATA[Abstract:&nbsp;转自：http://bbs.51js.com/viewthread.php?tid=76118&amp;page=1#pid542735
作者：未知|www.xfocus.net一、概述javascript函数劫持，也就是老外提到的javascripthijacking技术。最早还是和剑心同学讨论问题时偶然看到的一段代码，大概这样写的：window.alert=function(s){};觉得这&nbsp;&nbsp;&nbsp;（46121words)]]></description></item>	<item><title><![CDATA[仿Msn的WebIM基本完工,提供部分源码下载]]></title><link>http://www.qgy18.com/html/article289.htm</link><author></author><pubDate>2008-02-06 16:49:17</pubDate><description><![CDATA[<p>&nbsp;&nbsp;&nbsp; 就在这辞旧迎新之际，我那WebIM终于基本完工。特此庆祝一下！<img alt="" src="/fckeditor/editor/images/smiley/msn/teeth_smile.gif" /></p>
<p>&nbsp;&nbsp;&nbsp; 本程序是我出于学习和研究的目的编写而成，图片版权归Windows Live Messager所有。鉴于我公开了部分代码，特此申明：请勿将本人公开的代码用于除学习和研究之外的用途，否则由此可能引发的纠纷本人不承担任何责任！</p>
<p>&nbsp;&nbsp;&nbsp; 测试地址：<a href="http://www.shufou.com/chat"><font color="#ff9900">http://www.shufou.com/chat</font></a></p>
<p>&nbsp;&nbsp;&nbsp; 源码下载(仅包含UI部分,有注释)：<a href="http://old.qgy18.com/webim.rar"><font color="#99cc00">http://old.qgy18.com/webim.rar</font></a></p>
<p align="center"><a target="_blank" href="/userfiles/Image/2008-02-06_164702.png"><img alt="" width="400" border="0" src="/userfiles/Image/2008-02-06_164702.png" /></a></p>
<h4>附:功能列表</h4>
<ul>
    <li>注册、登录，登录支持记住帐号、记住密码和自动登陆选项</li>
    <li>修改本人状态、签名并通知给好友</li>
    <li>修改本人档案</li>
    <li>好友列表的状态、组别排序以及大图标显示</li>
    <li>添加、屏蔽、删除好友</li>
    <li>查看聊天记录，支持下载到本地</li>
    <li>发送、接收带图片表情的消息</li>
    <li>发送、接受闪屏振动</li>
    <li>主面板根据姓名、邮箱搜索好友功能</li>
    <li>系统设置</li>
    <li>添加、修改好友昵称</li>
    <li>联系人卡片</li>
    <li>三种(好友上线、新消息、闪屏)声音提示</li>
</ul>]]></description></item>	<item><title><![CDATA[QQ.Com变成火葬网？？？]]></title><link>http://www.qgy18.com/html/article288.htm</link><author></author><pubDate>2008-02-05 03:27:15</pubDate><description><![CDATA[<P>&nbsp;&nbsp;&nbsp; 几天前，就听说这次<A href="http://www.alexa.com/" target=_blank>Alexa</A>又清了中国网站大量数据，这个已经见怪不怪了。</P>
<P>&nbsp;&nbsp;&nbsp; 但是在alexa里查询QQ.com，开始几条记录的描述都是“中国最大的火葬网，提供骨灰盒买卖……”，这个也太离奇了。此次事件涉及到QQ主域，haoma.qq.com，3g.qq.com，不知道TX的人看了会怎么样。</P>
<P align=center><A href="http://old.qgy18.com/UserFiles/image/2008253261931803.PNG" target=_blank><IMG src="http://old.qgy18.com/UserFiles/image/2008253261931803.PNG" width=400 border=0></A></P>]]></description></item>	<item><title><![CDATA[JS闭包]]></title><link>http://www.qgy18.com/html/article287.htm</link><author></author><pubDate>2008-01-18 10:44:00</pubDate><description><![CDATA[Abstract:&nbsp;from:http://www.blogjava.net/zkjbeyond/archive/2006/05/23/47725.html
写在前面的话：试图翻译自http://jibbering.com/faq/faq_notes/closures.html文中大量提到《ECMA262》，我也没时间读这东西，可能有问题理解有误。希望纠正。只译了前边部分，我得理解几天再继续下去。英文水平差，凑合看&nbsp;&nbsp;&nbsp;（28669words)]]></description></item>	<item><title><![CDATA[再次集中精力开发一个基于Web的即时通讯软件]]></title><link>http://www.qgy18.com/html/article286.htm</link><author></author><pubDate>2008-01-17 04:03:06</pubDate><description><![CDATA[Abstract:&nbsp;说来惭愧，大概在一年前，我写下了这么一篇文章：集中精力全力开发一个基于Web的即时通讯软件，并且贴出了2张图片。结果后来由于种种原因一拖再拖，到后来也没心情接着开发了。
现在来看当时那个项目，有以下几点不足：当时为了仿真Windows软件，窗口用Window.Open来创建，这样如果用户浏览器开启了拦截弹出窗口就会出问题。而&nbsp;&nbsp;&nbsp;（1720words)]]></description></item>	<item><title><![CDATA[无题]]></title><link>http://www.qgy18.com/html/article285.htm</link><author></author><pubDate>2008-01-16 01:50:27</pubDate><description><![CDATA[<P align=left>&nbsp;&nbsp;&nbsp; 很久很久以前，有人惊奇的发现在百度搜索<A href="http://www.baidu.com/s?wd=sb&amp;cl=3" target=_blank><FONT color=#ff8000>SB</FONT></A>，第一个结果是google，就像下面这张图显示的一样。其原因是google不知道出于什么目的给<A href="http://www.google.com/ig?hl=zh-CN" target=_blank><FONT color=green>IGoogle</FONT></A>配了一下二级域名"sb"。</P>
<P align=center><A href="http://old.qgy18.com/UserFiles/image/20081161384836384.PNG" target=_blank><IMG height=217 src="http://old.qgy18.com/UserFiles/image/20081161384836384.PNG" width=526 border=0></A></P>&nbsp;&nbsp;&nbsp; 如果说百度的这一做法还合情合理，那么下图所示Google对于<A href="http://www.google.cn/search?complete=1&amp;hl=zh-CN&amp;q=sb&amp;btnG=Google+%E6%90%9C%E7%B4%A2&amp;meta=&amp;aq=-1&amp;oq=" target=_blank><FONT color=#ff8000>SB</FONT></A>这个关键字的做法好像有点说不过去了。人家那篇文章是多次提到"百度"、"sb"不假，但把"百度"拉出来单列一行始终让人觉得有人为因素在里面。 
<P align=center><A href="http://old.qgy18.com/UserFiles/image/20081161471836494.PNG" target=_blank><IMG height=373 src="http://old.qgy18.com/UserFiles/image/20081161471836494.PNG" width=561 border=0></A></P>
<P align=left>&nbsp;&nbsp;&nbsp; ps：忽然又想到一个关于这两家公司的有趣事，有这么一个网址<A href="http://www.baidu.im/" target=_blank><FONT color=#ff8000>http://www.baidu.im</FONT></A>，怎么看都像百度门下的，结果却指向了Google官方。与此类似的还有：<A href="http://www.ie7.com/" target=_blank><FONT color=#ff8000>http://www.ie7.com</FONT></A>（这个网站以前是指向<A href="http://www.mozilla.com/" target=_blank>Mozilla</A>的，不过不知为何现在我这里无法访问）。这应该属于恶搞性质了。</P>]]></description></item>	<item><title><![CDATA[自己动手，让Menllo博客支持Rss]]></title><link>http://www.qgy18.com/html/article284.htm</link><author></author><pubDate>2008-01-11 04:45:46</pubDate><description><![CDATA[<P>&nbsp;&nbsp;&nbsp; 最近用上了Rss阅读客户端<A href="http://www.newsgator.com/Individuals/FeedDemon/Default.aspx" target=_blank><FONT color=#ff9900>FeedDemon</FONT></A>，感觉还不错！于是我就开始把经常光顾的blog、网站统统收进来。结果发现LP用的<A href="http://www.menllo.com/public/blog" target=_blank><FONT color=#ff9900>Menllo Blog</FONT></A>没有提供Rss输出，想了一会决定自己动手弄一个。思路还是跟以前<A href="http://old.qgy18.com/#article.193" target=_blank><FONT color=#99cc00>用CNWUST提供的webservices写了个RSS</FONT></A>这篇文章一样，不过这次不能利用webservice，只能分析页面了。</P>
<P>&nbsp;&nbsp;&nbsp; 我们把Menllo Blog当成是黑盒来研究，首先打开任意一个人Portal的blog列表页面，如<A href="http://space.menllo.com/anriy/blog">http://space.menllo.com/anriy/blog</A>。很快就能找到突破口：这个页面的翻页用的是Ajax，那么很显然有另外一个后台页面在输出真正的数据。查看源代码，很容易就找到如下一段：</P>
<DIV style="BORDER-RIGHT: #8a8a8a 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: #8a8a8a 1px solid; PADDING-LEFT: 6px; FONT-SIZE: 12px; PADDING-BOTTOM: 6px; MARGIN: 1px; OVERFLOW: auto; BORDER-LEFT: #8a8a8a 1px solid; PADDING-TOP: 6px; BORDER-BOTTOM: #8a8a8a 1px solid; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #eeeeee">&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000ff">function</SPAN>&nbsp;getBlogList(page,pageSize) <BR>&nbsp;&nbsp;&nbsp;&nbsp;{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000ff">var</SPAN>&nbsp;url&nbsp;=&nbsp;<SPAN style="COLOR: #ff00ff">"/service/blogservice.aspx?t=3"</SPAN>; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000ff">var</SPAN>&nbsp;param&nbsp;=&nbsp;<SPAN style="COLOR: #ff00ff">"page=$1&amp;pagesize=$2&amp;rt=$3&amp;g=$4&amp;cate=$5"</SPAN>.format(page,pageSize,$(<SPAN style="COLOR: #ff00ff">'hidRenderType'</SPAN>).value,$(<SPAN style="COLOR: #ff00ff">'hidUserGuid'</SPAN>).value,$(<SPAN style="COLOR: #ff00ff">'hidCateID'</SPAN>).value); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getAjax(param,url,<SPAN style="COLOR: #ff00ff">'get'</SPAN>,<SPAN style="COLOR: #ff00ff">'blogListContainer'</SPAN>); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;location.hash&nbsp;=&nbsp;<SPAN style="COLOR: #ff00ff">"bloglist"</SPAN>; <BR>&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
<P>结合上下文，page和pagesize很显然指定是第几页和每页显示多少条，rt是RenderType的简写，g就是用户GUID，cate是博客分类。我们可以在IE地址栏输入如下一个地址检验一下自己的猜想：http://space.menllo.com/service/blogservice.aspx?t=3&amp;page=1&amp;pagesize=20&amp;rt=1&amp;g=9431af99-d96b-44bc-bc87-0f8eefdea442&amp;cate=0。经过试验，在IE7下提示有错误，不过不要紧，这应该是特殊字符造成的，换成用FF打开就可以看到内容了。</P>
<P>&nbsp;&nbsp;&nbsp; 剩下的工作就好办了，获取源代码后可以利用正则来匹配。由于这个空间只支持asp，asp里用正则又很不爽，所以我采用的是用Left,InStr,Right,Len这几个函数来做，效率算是比较低的了，不过也算是一种解决方法了。</P>
<P>&nbsp;&nbsp;&nbsp; 效果测试(服务器关系，应该比较慢)：</P>
<P>&nbsp;&nbsp;&nbsp; david的blog：<A href="http://old.qgy18.com/inc/menllo.asp?ps=10&amp;g=c4003dc7-4a19-4268-b9ed-b2d9eca3f9f7">http://old.qgy18.com/inc/menllo.asp?ps=10&amp;g=c4003dc7-4a19-4268-b9ed-b2d9eca3f9f7</A>&nbsp;(为什么要选这个测试呢？那是因为正常情况下总是没机会看到david的Menllo Blog，呵呵~)</P>]]></description></item>	<item><title><![CDATA[新年新皮肤]]></title><link>http://www.qgy18.com/html/article283.htm</link><author></author><pubDate>2008-01-10 12:07:00</pubDate><description><![CDATA[<P><FONT color=#000000>&nbsp;&nbsp;&nbsp; 新年到了。我给我的blog换了一套喜气的皮肤，见截图。如果你看到的不是这个皮肤，那么请点击右键菜单或者导航条里的change skin来感受一下吧！</FONT></P>
<P align=center><A href="http://old.qgy18.com/UserFiles/image/2008110044262753.PNG" target=_blank><IMG src="http://old.qgy18.com/UserFiles/image/2008110044262753.PNG" width=500 border=0></A></P>
<P align=left>&nbsp;&nbsp;&nbsp; 皮肤不是我原创，是我从<A href="http://blog.hjenglish.com/">沪江博客</A>的SKIN模板里调的一个现成的移植而成。原图见本链接：<A href="http://blog.hjenglish.com/Skins/redcross/big.jpg">http://blog.hjenglish.com/Skins/redcross/big.jpg</A>&nbsp;。</P>]]></description></item>	<item><title><![CDATA[离线blog管理软件MyWriter介绍]]></title><link>http://www.qgy18.com/html/article282.htm</link><author></author><pubDate>2008-01-09 11:58:09</pubDate><description><![CDATA[Abstract:&nbsp;一、功能简介
Mywriter是用c#写的、支持MetaweblogApi的离线blog软件。作为一个自用软件，它的功能谈不上丰富，但是实用够用，精心设计过的插件架构也让扩展功能变得容易。
程序的界面结构及思路均借鉴了WindowsLiveWriter——这也是我很喜欢用的Blog客户端。那为什么有了WLW我还要写这个呢？&nbsp;&nbsp;&nbsp;（2505words)]]></description></item>	<item><title><![CDATA[什么是DOCTYPE]]></title><link>http://www.qgy18.com/html/article281.htm</link><author></author><pubDate>2008-01-09 08:39:03</pubDate><description><![CDATA[Abstract:&nbsp;转自：http://blog.sina.com.cn/s/blog_56836086010008fg.html
DOCTYPE是documenttype(文档类型)的简写，用来说明你用的XHTML或者HTML是什么版本。
其中的DTD(例如上例中的xhtml1-transitional.dtd)叫文档类型定义，里面包含了文档的规则，浏览器就根据你定义的DTD来解释你页面的标识，并展现出来。&nbsp;&nbsp;&nbsp;（1772words)]]></description></item>	<item><title><![CDATA[一张老碟]]></title><link>http://www.qgy18.com/html/article280.htm</link><author></author><pubDate>2008-01-08 01:04:13</pubDate><description><![CDATA[<P>&nbsp;&nbsp;&nbsp; 晚上在网上闲逛，在<A href="http://www.verycd.com/" target=_blank>verycd</A>上看到一张本世纪初CD——谢霆锋的《世纪预言》，由于本人以前也是Nicholas Tse的fans，所以就毫不犹豫的down下来重温。</P>
<P>&nbsp;&nbsp;&nbsp; 记得第一次听这盘专辑是在我高一的时候，那个时候听得比较多的就是《世纪预言》和《玉蝴蝶》了，没想到事隔这么多年，老谢桀骜不驯的音乐还是能带给我震撼。</P>
<P>&nbsp;&nbsp;&nbsp; 另外，这盘专辑的简介比较有趣，“谢霆锋大胆预言了未来世界将自极端走向中庸，冲突将趋于和谐”，当今风靡全国的“和谐社会”，老谢早在7年前就一语道中，“世纪预言”真神了！</P>]]></description></item>	<item><title><![CDATA[MrWiter开发感想——写WinForm好累]]></title><link>http://www.qgy18.com/html/article279.htm</link><author></author><pubDate>2007-12-28 12:20:51</pubDate><description><![CDATA[<P>&nbsp;&nbsp;&nbsp; MyWriter现在基本已经成型。新加入的功能有：皮肤支持，WordPress支持，状态栏实时提示，编辑器自定义css支持等。近期内，主程序除了改bug以外应该就不会有改变了，一些自己用的着的功能也将以插件形式添加。<BR><BR>
<HR style="WIDTH: 95%; HEIGHT: 2px" SIZE=2>
<BR>&nbsp;&nbsp;&nbsp; 这几天的经历，让我觉得WinForm程序写起来好累。bug层出不穷，经常是改好了这里那里又有问题了。有些bug还很隐蔽，比如说先点这个按钮再点那个按钮是正常的，反过来就不行了。在web程序里，一个页面出错了，我们还可以返回稍后再试，一个页面逻辑复杂了我们可以分几个页面来做，而且通常一个页面生命周期都比较短，往往等不到问题暴露出来用户就跳走了。虽然说Ajax的出现使得页面的生命周期变长，逻辑变复杂，但是跟WinForm比起来已经好多了，Winform里基本就是一个窗口整合所有的逻辑。以前老是想不通，为什么一些大公司出的软件也经常出错需要重启，现在终于有些明白了。 
<P>&nbsp;&nbsp;&nbsp; PS：后来我一想，我这还用的是C#，什么内存泄露，指针，垃圾回收等等都不用我操心，已经算幸福的了<IMG style="WIDTH: 19px; HEIGHT: 19px" alt=smile_teeth src="http://spaces.live.com/rte/emoticons/smile_teeth.gif">。</P>
<P></P>
<P align=center><A href="http://old.qgy18.com/UserFiles/image/20071228116616373.PNG" target=_blank><IMG src="http://old.qgy18.com/UserFiles/image/20071228116616373.PNG" width=400 border=0></A></P>]]></description></item>	<item><title><![CDATA[c#中使用WebBrowser的一些技巧]]></title><link>http://www.qgy18.com/html/article278.htm</link><author></author><pubDate>2007-12-27 05:31:47</pubDate><description><![CDATA[<P>&nbsp;&nbsp;&nbsp; 最近在c#用到了.Net自带的WerbBrowser控件，有了一些心得，记录如此。</P>
<P>&nbsp;&nbsp;&nbsp; 因为WebBrowser只是对mshtml这个com对象的不完整封装，仅支持一些常见的应用。所以我们还是在项目里添加对mshtml的引用，并且using mshtml。</P>
<BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px">
<P><FONT color=red>Q</FONT>：怎么设置WebBrowser为可编辑模式？</P>
<P><FONT color=green>A</FONT>：如下设置：</P>
<DIV style="BORDER-RIGHT: #8a8a8a 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: #8a8a8a 1px solid; PADDING-LEFT: 6px; FONT-SIZE: 12px; PADDING-BOTTOM: 6px; MARGIN: 1px; OVERFLOW: auto; BORDER-LEFT: #8a8a8a 1px solid; PADDING-TOP: 6px; BORDER-BOTTOM: #8a8a8a 1px solid; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #eeeeee">doc&nbsp;=&nbsp;wbContent.Document.DomDocument&nbsp;<SPAN style="COLOR: #0000ff">as</SPAN>&nbsp;IHTMLDocument2; <BR>doc.designMode&nbsp;=&nbsp;<SPAN style="COLOR: #ff00ff">"On"</SPAN>; <BR><SPAN style="COLOR: #008000">//doc.execCommand("EditMode", false, "on");这一句跟上面效果是一样的</SPAN></DIV>
<P><FONT color=red>Q</FONT>：为什么往WebBrowser里插入的图片不能改变大小？</P>
<P><FONT color=green>A</FONT>：具体表现是：选中图片等control时会出现拖动大小的标记，但是怎么拖动大小都不改变。这个问题困扰我很久了，google了很久也没找到答案。最后发现加上如下代码就OK了：</P>
<DIV style="BORDER-RIGHT: #8a8a8a 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: #8a8a8a 1px solid; PADDING-LEFT: 6px; FONT-SIZE: 12px; PADDING-BOTTOM: 6px; MARGIN: 1px; OVERFLOW: auto; BORDER-LEFT: #8a8a8a 1px solid; PADDING-TOP: 6px; BORDER-BOTTOM: #8a8a8a 1px solid; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #eeeeee">wbContent.GotFocus&nbsp;+=&nbsp;<SPAN style="COLOR: #0000ff">new</SPAN>&nbsp;EventHandler(EditorFocus); <BR><SPAN style="COLOR: #0000ff">public</SPAN>&nbsp;<SPAN style="COLOR: #0000ff">void</SPAN>&nbsp;EditorFocus(<SPAN style="COLOR: #0000ff">object</SPAN>&nbsp;sender,&nbsp;EventArgs&nbsp;e)&nbsp; <BR>{&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;<SPAN style="COLOR: #0000ff">if</SPAN>&nbsp;(docContent&nbsp;!=&nbsp;<SPAN style="COLOR: #0000ff">null</SPAN>&nbsp;&amp;&amp;&nbsp;docContent.Body&nbsp;!=&nbsp;<SPAN style="COLOR: #0000ff">null</SPAN>)&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;docContent.Body.Focus();&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp; <BR>}</DIV>
<P><FONT color=red>Q</FONT>：怎么插入链接、图片，怎么设置字体大小、颜色等等？</P>
<P><FONT color=green>A</FONT>：如下设置，exexCommand更多用法请参照<A href="http://www.blueidea.com/tech/web/2003/1242.asp"><FONT color=#ff8040>http://www.blueidea.com/tech/web/2003/1242.asp</FONT></A></P>
<DIV style="BORDER-RIGHT: #8a8a8a 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: #8a8a8a 1px solid; PADDING-LEFT: 6px; FONT-SIZE: 12px; PADDING-BOTTOM: 6px; MARGIN: 1px; OVERFLOW: auto; BORDER-LEFT: #8a8a8a 1px solid; PADDING-TOP: 6px; BORDER-BOTTOM: #8a8a8a 1px solid; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #eeeeee">doc&nbsp;=&nbsp;wbContent.Document.DomDocument&nbsp;<SPAN style="COLOR: #0000ff">as</SPAN>&nbsp;IHTMLDocument2;&nbsp; <BR>doc.execCommand(<SPAN style="COLOR: #ff00ff">"Bold"</SPAN>,&nbsp;<SPAN style="COLOR: #0000ff">false</SPAN>,&nbsp;<SPAN style="COLOR: #0000ff">null</SPAN>);<SPAN style="COLOR: #008000">//设置选中为粗体</SPAN></SPAN></DIV>
<P><FONT color=red>Q</FONT>：我知道doc.execCommand("Undo", false, null)能撤销，但我怎么能知道当前能不能撤销（也就是说是不是已经后退到最开始）呢？</P>
<P><FONT color=green>A</FONT>：这个问题我也google了很久，没有找到办法，有人说设置一个数组来监控，不过这样太麻烦。后来看到<A href="http://tinymce.moxiecode.com/" target=_blank><FONT color=green>TinyMCE</FONT></A>的代码才恍然大悟，然后这个需求ms早想到了，下面代码就可以：</P>
<DIV style="BORDER-RIGHT: #8a8a8a 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: #8a8a8a 1px solid; PADDING-LEFT: 6px; FONT-SIZE: 12px; PADDING-BOTTOM: 6px; MARGIN: 1px; OVERFLOW: auto; BORDER-LEFT: #8a8a8a 1px solid; PADDING-TOP: 6px; BORDER-BOTTOM: #8a8a8a 1px solid; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #eeeeee">doc.queryCommandEnabled(<SPAN style="COLOR: #ff00ff">"Undo"</SPAN>);<SPAN style="COLOR: #008000">//测试能不能撤销，返回bool </SPAN><BR>doc.queryCommandState(<SPAN style="COLOR: #ff00ff">"Bold"</SPAN>);<SPAN style="COLOR: #008000">//测试当前字体是不是粗体 </SPAN><BR><SPAN style="COLOR: #008000">//and&nbsp;so&nbsp;on&nbsp;自己试一下就知道了</DIV>
<P></SPAN>&nbsp;</P></BLOCKQUOTE>]]></description></item>	<item><title><![CDATA[为MyWriter写了个编辑器]]></title><link>http://www.qgy18.com/html/article277.htm</link><author></author><pubDate>2007-12-26 05:03:14</pubDate><description><![CDATA[<P>&nbsp;&nbsp;&nbsp; 之前MyWriter的编辑器是基于网页的，由于我刚开始不知道怎么写Editor，就直接把163的那个编辑器用一个webbrowser嵌了进去。尽管js与c#双向通讯很简单，但一个winform里老用网页上的东西有点不伦不类。今天花了一晚上写了个基于c#的编辑器，下面是一张截图：</P>
<P align=center><A href="http://old.qgy18.com/UserFiles/image/200712264534433911.PNG" target=_blank><IMG src="http://old.qgy18.com/UserFiles/image/200712264534433911.PNG" width=400 border=0></A></P>
<P align=left>&nbsp;&nbsp;&nbsp; 实现方法很简单，直接用的mshtml，document.execCommand方法足以实现所有的功能。唯一的缺点就是生成的代码基本都不符合web标准，太乱。</P>
<P align=left>&nbsp;&nbsp;&nbsp; 另外，今天测试了下MyWriter对其它blog程序的支持程度。测试用的是常见的wordpress，发布，修改，删除都没有问题，上传图片也是可以用的，那些仅属于我blog的字段当然就不起作用了。</P>]]></description></item>	<item><title><![CDATA[MyWriter初步实现插件功能]]></title><link>http://www.qgy18.com/html/article276.htm</link><author></author><pubDate>2007-12-24 10:57:06</pubDate><description><![CDATA[Abstract:&nbsp;&nbsp;&nbsp;&nbsp;主程序的功能昨天已经完成得差不多了。今天设计了一下插件接口，确定了主程序需要暴露给插件的内容。并在这个基础上写了2个插件。第一次写c#插件，网上例程也不多，把自己的实现记录于此。
&nbsp;&nbsp;&nbsp;首先，建立一个PluginKernel的类库，插件的接口都在这里定义：
IPluginShell.cs主程序要实现的功能
&nbsp;&nbs&nbsp;&nbsp;&nbsp;（21646words)]]></description></item>	<item><title><![CDATA[一个好看的WebEditor——出自sina博客]]></title><link>http://www.qgy18.com/html/article275.htm</link><author></author><pubDate>2007-12-23 01:50:27</pubDate><description><![CDATA[<P>&nbsp;&nbsp;&nbsp; 以前我把<A href="http://mail.163.com/" target=_blank><FONT color=green>网易邮箱</FONT></A>里的的编辑器分离出来了，用在了我这个blog的评论上。今天我又把<A href="http://blog.sina.com.cn/" target=_blank><FONT color=green>sina博客</FONT></A>的webeditor给扒了下来。清理了所有与sinablog紧密相联的代码（自动保存、上传图片等），弄成了一个纯js的web编辑器。这里有演示地址：<A href="http://old.qgy18.com/other/sinaeditor/" target=_blank><FONT color=#ff8000>http://old.qgy18.com/other/sinaeditor/</FONT></A>。特别申明：此程序版权归<STRONG><EM>sina</EM></STRONG>所有，我只是以学习为目的来研究:)</P>
<P align=center><A href="http://old.qgy18.com/UserFiles/image/200712231481255088.PNG" target=_blank><IMG src="http://old.qgy18.com/UserFiles/image/200712231481255088.PNG" width=400 border=0></A></P>]]></description></item>	<item><title><![CDATA[MyWriter进化中，新增一些实用功能]]></title><link>http://www.qgy18.com/html/article274.htm</link><author></author><pubDate>2007-12-23 01:21:53</pubDate><description><![CDATA[<P>&nbsp;&nbsp;&nbsp; 昨天完成了这个小软件的基本功能，今天在日志的编辑功能下了一些功夫。用c#代码重写了原来webeditor的插入链接和插入图片功能；利用c#代码与js结合实现了代码高亮。插入图片里可以选择插入本地图片，程序会使用metaWeblog.newPost api将图片保存到服务器上。代码高亮功能使用了一个<A href="http://old.qgy18.com/index.htm#article.273" target=_blank>js语法加亮类</A>；上传图片中的对文件进行Base64编码使用了<A href="http://old.qgy18.com/index.htm#article.272" target=_blank>网上的一个SBase64类</A>。</P>
<P align=center><A href="http://old.qgy18.com/UserFiles/image/20071223195884370.PNG" target=_blank><IMG src="http://old.qgy18.com/UserFiles/image/20071223195884370.PNG" width=400 border=0></A></P>]]></description></item>	<item><title><![CDATA[js语法加亮类]]></title><link>http://www.qgy18.com/html/article273.htm</link><author></author><pubDate>2007-12-23 01:20:31</pubDate><description><![CDATA[Abstract:&nbsp;&nbsp;&nbsp;&nbsp;演示地址：http://www.qgy18.com/other/codehightlight/index.html
/**//**//**//**//**//**//**//*&nbsp;&nbsp;**&nbsp;&nbsp;&nbsp;&nbsp;=======================================================&nbsp;&nbsp;&nbsp;（79547words)]]></description></item>	<item><title><![CDATA[asp.net(c#) base64编码处理类]]></title><link>http://www.qgy18.com/html/article272.htm</link><author></author><pubDate>2007-12-23 01:12:16</pubDate><description><![CDATA[Abstract:&nbsp;&nbsp;&nbsp;&nbsp;转自：http://hi.baidu.com/miny/blog/item/af967aec201ec8d22e2e21f1.html
using&nbsp;System;namespace&nbsp;Base64{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;summary&gt;&nbsp;&nbsp;&nbsp;&&nbsp;&nbsp;&nbsp;（22826words)]]></description></item>	<item><title><![CDATA[C#代码操作IIS之虚拟目录]]></title><link>http://www.qgy18.com/html/article271.htm</link><author></author><pubDate>2007-12-22 02:33:10</pubDate><description><![CDATA[Abstract:&nbsp;&nbsp;&nbsp;&nbsp;一直在找操作IIS的代码，因为XP同时只能配置一个网站，想过自己写一个程序来实现快速切换网站目录。今天刚好看到这么一段代码，先收了，有空就开工。
转自：http://eroad.alai.net/sitepro/ASPDOTNET/cjyy/3476.html
using&nbsp;System;using&nbsp;System.Data;using&nb&nbsp;&nbsp;&nbsp;（53573words)]]></description></item>	<item><title><![CDATA[在C#中使用MSHTML的高级支持接口]]></title><link>http://www.qgy18.com/html/article270.htm</link><author></author><pubDate>2007-12-22 02:12:29</pubDate><description><![CDATA[Abstract:&nbsp;原著：NikhilDabas翻译：Abbey
原文出处UsingMSHTMLAdvancedHostingInterfaces，CodeProject下载源代码：IDocHostUIHandler（79KB）摘要　　本文向你演示了如何使用IDocHostUIHandler之类MSHTML的高级接口。概览　　本文将向你展示如何在.NET下使用MSHTML的高级支持接口，特别是其中的IDocHost&nbsp;&nbsp;&nbsp;（5197words)]]></description></item>	<item><title><![CDATA[C#应用程序中Form的Loaded事件]]></title><link>http://www.qgy18.com/html/article269.htm</link><author></author><pubDate>2007-12-22 12:57:17</pubDate><description><![CDATA[Abstract:&nbsp;&nbsp;&nbsp;&nbsp;我们在写C#应用程序的时候经常有很多初始化工作要做，一般都放在Form的Load事件中来写，但是如果这个工作是比较耗时的，比如说初始化webservice、连接远程数据库，那么点了程序要等很长一段时候主界面才出来。为了解决这个问题，我们可以用一个前导窗体也就是闪屏来提示用户正在加载。可有的时候仅仅是要写一个小程序，有没有更简单的办法呢？
&nbsp;&nbsp&nbsp;&nbsp;&nbsp;（2391words)]]></description></item>	<item><title><![CDATA[WebBrowser页面与WinForm交互技巧]]></title><link>http://www.qgy18.com/html/article268.htm</link><author></author><pubDate>2007-12-21 10:45:27</pubDate><description><![CDATA[Abstract:&nbsp;&nbsp;&nbsp;&nbsp;转自：http://www.cnblogs.com/smalldust/archive/2006/03/08/345561.html


最近看到博客园入门教学文章比较流行，自己最近又偷懒比较多，没啥心得，不妨写一篇没啥深度的入门文章吧。
话说有了WebBrowser类，终于不用自己手动封装SHDocVw的AxWebBrowser这个ActiveX控件了&nbsp;&nbsp;&nbsp;（48089words)]]></description></item>	<item><title><![CDATA[自己写的一个Blog管理客户端——My Writer]]></title><link>http://www.qgy18.com/html/article267.htm</link><author></author><pubDate>2007-12-21 20:39:51</pubDate><description><![CDATA[<P>&nbsp;&nbsp;&nbsp; 这几天写了一下Blog管理客户端，暂时就叫My Writer吧。因为程序界面和功能都和<A href="http://get.live.com/betas/writer_betas"><FONT color=#ff9900>Live Writer</FONT></A>挺像的：）</P>
<P>&nbsp;&nbsp;&nbsp; 写这个软件的动机是：尽管我的<A href="http://old.qgy18.com/index.htm#article.217"><FONT color=#0033ff>Blog已经支持了metaWeblog Api</FONT></A>，但我的blog字段和标准字段有很多不同，用Live Writer发布的文章，很多信息不全。目前的版本实现的功能有发布、修改、删除日志。当然作为一个离线软件，草稿箱功能肯定也是有的。而且因为采用的是标准Api，理论上应该也支持其它Blog程序，比如说<A href="http://www.wordpress.org/">WordPress</A>，不过没有测试！下一步计划就是设计插件模式来扩充软件功能。</P>
<P align=center><A href="http://old.qgy18.com/userfiles/image/2007-12-21_201555.png"><IMG height=313 alt="" src="http://old.qgy18.com/userfiles/image/2007-12-21_201555.png" width=400 border=0></A></P>
<P align=center><A href="http://old.qgy18.com/userfiles/image/2007-12-21_201745.png"><IMG height=313 alt="" src="http://old.qgy18.com/userfiles/image/2007-12-21_201745.png" width=400 border=0></A></P>
<P align=center><A href="http://old.qgy18.com/userfiles/image/2007-12-21_202050.png"><IMG height=312 alt="" src="http://old.qgy18.com/userfiles/image/2007-12-21_202050.png" width=400 border=0></A></P>
<P>&nbsp;</P>]]></description></item>	<item><title><![CDATA[C#中得到可执行文件(程序)的路径和文件名]]></title><link>http://www.qgy18.com/html/article266.htm</link><author></author><pubDate>2007-12-21 08:11:05</pubDate><description><![CDATA[Abstract:&nbsp;&nbsp;&nbsp;&nbsp;转载自：http://hi.baidu.com/nthulu/blog/item/da899335d43bdb1291ef39b0.html
//得到可执行文件的路径（包括名称）stringhostName=Application.ExecutablePath;//获取最初指定程序的位置hostName=System.Reflection.Assembly.G&nbsp;&nbsp;&nbsp;（760words)]]></description></item>	</channel></rss>