<?xml version="1.0" encoding="GB2312"?>
<rss version="2.0">
<channel>
<title><![CDATA[沙流荒远]]></title>
<link>http://kuangrun.blog.xj169.com/index.html</link>
<description><![CDATA[沙流荒远]]></description>
<item>
<title><![CDATA[SEO优化推广策略：站群]]></title>
<link>http://kuangrun.blog.xj169.com/archives/2008/1368.html</link>
<description><![CDATA[<P>(转<A href="http://www.88blog.com.cn/post/seo-sites.html">http://www.88blog.com.cn/post/seo-sites.html</A>)</P>
<P>站群<A href="http://www.88blog.com.cn/post/seo.html" target=_blank><FONT color=#6c8c37>SEO</FONT></A>优化推广策略，是一种风险比较高，但效果比较明显的一种网站推广手段。因为就算一个网站优化的再好，你一个关键词最多也只能抢到一个位置。如果利用站群，很有可能就是前十大位置全部是你的。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;但是站群的资金投入也比较高，一般个人建立站群不大可能，大多数是商业公司所为。一个域名：60块。一个100M的空间：80块。算最低一个网站的成本都要120块。虽然，一个网站一年盈利120块没有问题，但是前期投入至少应该都有几万块。一般的站群规模小的100-200个网站，大的1000-2000个网站！</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;今年因为国家域名便宜，一个.CN域名1块钱。估计有不少公司会培养自己的站群。我今年就培养了一个站群，网站规模在1000个，应该算是比较中等规模的站群了。当然，站群是公司出钱培养，我个人暂时还没有这个能力。站群的威力，确实非常大。但培养也需要非常小心。其实，我维护这个站群的主要思想是，认真做好这1000个网站。我并不是做给搜索引擎看的，这其实也是我们公司的一大推广策略。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在这里就我培养站群的一些小经验，跟大家一起分享。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>一、域名的注册：</STRONG></P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.域名尽量不要再同一时间全部注册。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.域名的whois信息，不要相同的太多。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.在多家域名注册服务公司，注册域名。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.域名注册的格式，要各种各样。不要用类似于：www.xxxxx1.com&nbsp;– www.xxxxx100.com 这样子的方法去注册！</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp; <STRONG>二、IP地址：</STRONG></P>
<P>&nbsp;&nbsp;&nbsp;&nbsp; 把网站分布在不同的IP地址上，国内也好、国外也好。要有一个比例，例如二个网站分布在一个IP或者三个网站分布一个IP，能做到一个网站一个IP，当然是最好！</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp; <STRONG>三、站群的内容：</STRONG></P>
<P>&nbsp;&nbsp;&nbsp;&nbsp; 站群的内容，是站群培养是否成功的关键所在。每一个网站的内容，千万不要相同，尽量做到每一个网站的内容都有不同，不同程度在80%以上！我们要记得一点，不要为了站群而站群，同时要把这些网站的内容做好，这其实也是展示你公司业务的一种宣传手法！</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp; <STRONG>四、站群网站的页面设计：</STRONG></P>
<P>&nbsp;&nbsp;&nbsp;&nbsp; 站群网站的页面设计，一定要做到每一个都不一样。既然决定要做站群了，就要把每一步都做好，不要怕麻烦。所有页面都一个模子刻出来的话，这很不利网站今后的运作！</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp; <STRONG>五、链接：</STRONG></P>
<P>&nbsp;&nbsp;&nbsp;&nbsp; 站群之间的网站不要相互链接，站群之间的网站，如果相互链接，很容易就给搜索引擎顺着链接，判断出来站群。而且，站群之间的网站相互链接，很容易形成链接工厂。但是站群的网站，还是很需要链接，我们可以跟其他的网站交换链接。把其他各种各样的网站，引进进来。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp; <STRONG>六、不要用搜索引擎的东西：</STRONG></P>
<P>&nbsp;&nbsp;&nbsp;&nbsp; 不要安装GOOGLE工具条、百度工具条。防人之心，不可无！</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp; 做站群，最主要的工作，就是如何做到隐蔽！站群这一策略，还是可以做，也可以做到搜索引擎觉察不出来，但是需要非常大的功夫！如果有的朋友也建立了站群的话，可以跟我联系。大家一起交流！</P>]]></description>
<author>竹子</author>
<pubDate>2008-7-21 22:28:00</pubDate>
</item>
<item>
<title><![CDATA[seo修炼方向]]></title>
<link>http://kuangrun.blog.xj169.com/archives/2008/1367.html</link>
<description><![CDATA[<P>（转<A href="http://www.lupaworld.com/batch.viewlink.php?itemid=35632">http://www.lupaworld.com/batch.viewlink.php?itemid=35632</A>）</P>
<P>以下的技能清单，几乎（也许是完全）是包含了影响排名的因素。如果按这个清单来做，并能够在实践中锻炼1年，明确地说，你可以做一个职业SEO者。</P>
<P>内容</P>
<P>文件名出现关键词***** <BR>Title中出现关键词***** <BR>常规内容中出现关键词***** <BR>在页面的第一段中出现关键词***** <BR>Heading 标签 比如h1,h2中出现关键词**** <BR>链接中出现关键词*** <BR>图片文件名中出现关键词** <BR>Alt标签中出现关键词** <BR>comment中出现关键词* <BR>合理的频率更新内容***</P>
<P>链接</P>
<P>大量的流入链接***** <BR>从高PR值得网页获得流入链接***** <BR>流入的链接有具体内容*** <BR>流入链接的文字中有关键词 <BR>流入链接的时间长度，一般流入链接的存在时间有3-6个月***** <BR>单向链接的价值高于交换链接*** <BR>流入链接的页面的流出链接小于100个，流出链接越少越好**** <BR>你需要避免的事情</P>
<P>关键词堆积 <BR>使用CSS或背景色隐藏内容，这是十恶不赦的大恶 <BR>使用Java跳转 <BR>相同ip之下的网页直接进行大量交换链接 <BR>桥页和Cloaking，诱导搜索引擎的爬虫，这是十恶不赦的大恶 <BR>成人内容，违禁药品，赌博相关内容 <BR>内容重复 <BR>域名的存在时间 <BR>加入到Link Farm或则Link交换类网站 <BR>尽量避免的问题</P>
<P>地址中存在动态变量 <BR>单一图片和Flash的网站 <BR>用Java制作的网站导航条或目录</P>
<P>Seo——站内链接的优化 <BR>转载 发表在 11月 6, 2006 <BR>大家都知道外部链接对网站排名的重要性，同时也建议不要忽略了站内链接的作用。</P>
<P><BR>外部链接大部分情况下是不好控制的，而且要经过很长时间的积累，内部链接却完全在自己的控制之下。下面列几个优化站内链接的经验。</P>
<P>建立网站地图</P>
<P>只要有可能，最好给网站建一个完整的网站地图sitemap。同时把网站地图的链接放在首页上，使搜索引擎能很方便的发现和抓取所有网页。</P>
<P>有不少CMS系统并不自动生成网站地图，可能需要加一些插件。对大型的网站来说，可以把网站地图分成几个文件，每个文件里不要放太多网页。</P>
<P>每个网页最多离首页四次点击</P>
<P>对一个中小型网站来说，要确保从首页出发，四次点击之内就要达到任何一个网页。当然如果在三次点击之内更好，两次就更好。配合网站地图的使用，这一点应该不是大问题。</P>
<P>大家可以计算一下，四次点击至少可以有几百万个网页，所以对一般网站应该是可以适用的。</P>
<P>尽量使用文字导航</P>
<P>网站的导航系统最好使用文字链接。有的网站喜欢用图片或者JS下拉菜单等，但SEO效果最好的是文字链接，使搜索引擎可以顺利抓取，而且通过链接文字了解这些栏目页的具体内容。</P>
<P>如果为了美观不得不使用图片或者JS，至少在网站底部或者在网站地图中应该有所有栏目的文字链接。</P>
<P>链接文字</P>
<P>网站导航中的链接文字应该准确描述栏目的内容，自然而然在链接文字中就会有关键词，但是也不要在这里堆砌关键词。</P>
<P>在网页正文文章中提到其他网页内容的时候，可以自然而然的使用关键词链接到其他网页。反向链接中的关键词也是排名的重要因素之一，在自己的站内自己有完全的控制权。</P>
<P>整站的PR传递和流动</P>
<P>只要有好的网站整体结构，整个网站的PR传递应该是很均匀的，首页最高，栏目页次之，内容页再次。</P>
<P>但有的时候可以通过网页的链接影响PR和重要性的传递，使某一页或某几页的PR值和重要性升高，这几页也是你重点要推的网页。</P>
<P>网页的互相链接</P>
<P>以前说过网站的树型结构，不过要注意的是，这种树型结构不是说各个栏目下的文章页之间没有链接，恰恰相反，应该在不同栏目的网页中链接向其他栏目的相关网页。整个网站的结构看起来更像蜘蛛网，既有由栏目组成的主脉，也有网页之间的适当链接。</P>
<P><BR>CSS+DIV重构与SEO <BR>robin 发表在 十二月 30, 2006 <BR>采用CSS+DIV对网站重构日趋被大家重视起来了，尤其是大型站点，就在今天下午，IT168首页改版就选择了这种做法。其实，早些时候像阿里巴巴、163等大型门户站点就已经完成了重构工作。Robin早在去年就已经有了使用CSS+DIV来编写网页源码的习惯了，个人感觉这种方法确实比传统的TABLE形式的源码架构强多了。</P>
<P><BR>很多SEO技术爱好者不是很明白CSS+DIV与TABLE相比到底有什么好处而来向我咨询，今天我来统一回答:)</P>
<P>根据我个人将近一年的网页编写经验，采用CSS+DIV进行网页重构相对与传统的TABLE网页布局而具有以下4个显著优势：</P>
<P>1：表现和内容相分离</P>
<P>将设计部分剥离出来放在一个独立样式文件中，HTML文件中只存放文本信息。</P>
<P>2：提高搜索引擎对网页的索引效率</P>
<P>用只包含结构化内容的HTML代替嵌套的标签，搜索引擎将更有效地搜索到你的网页内容，并可能给你一个较高的评价。</P>
<P>3：提高页面浏览速度</P>
<P>对于同一个页面视觉效果，采用CSS+DIV重构的页面容量要比TABLE编码的页面文件容量小得多，前者一般只有后者的1/2大小。</P>
<P>4：易于维护和改版</P>
<P>你只要简单的修改几个CSS文件就可以重新设计整个网站的页面。</P>
<P>从以上的描述来看，采用CSS+DIV对网站重构可以大大提升网站用户与搜索引擎的友好度。既然是这样，那为什么不从现在开始就学习并掌握CSS+DIV的网站重构方法呢？</P>
<P><BR>49个影响网站排名的因素（完整版）</P>
<P>内部因素</P>
<P>URL中出现关键词 <BR>网页Title中出现关键词 <BR>常规内容中出现关键词 <BR>在页面的第一段中出现关键词 <BR>在页面的最后一段中出现关键词 <BR>Heading 标签 比如h1,h2中出现关键词 <BR>站内的链接中出现关键词 <BR>导向相关内容的导出链接 <BR>导出链接中出现关键词&nbsp;&nbsp;<BR>图片文件名中出现关键词 <BR>Alt标签中出现关键词 <BR>comment中出现关键词 <BR>合理的频率更新内容 <BR>内容对搜索引擎的展示位置 <BR>网站结构循环PR，而非散发PR <BR>关键词进行适当的修饰（加粗、斜体等）</P>
<P><BR>外部因素</P>
<P>大量的导入链接 <BR>从高PR值得网页获得导入链接 <BR>从相关内容网站获得导入链接&nbsp;&nbsp;<BR>导入链接指向的网页有具体内容 <BR>锚文字中有关键词 <BR>锚文字周围有相关词 <BR>锚文字存在于文章或句子中 <BR>导入链接的时间长度，一般导入链接的存在时间有3-6个月 <BR>单向链接的价值高于交换链接 <BR>导入链接的页面的导出链接小于100个，流出链接越少越好 <BR>链接来自不同IP <BR>合理的导入链接增长频率</P>
<P><BR>你需要避免的事情</P>
<P>关键词堆积 <BR>所有的锚文字都相同 <BR>使用CSS或背景色隐藏内容，这是十恶不赦的大恶 <BR>使用Java跳转 <BR>相同ip之下的网页直接进行大量交换链接 <BR>桥页和Cloaking，诱导搜索引擎的爬虫，这是十恶不赦的大恶 <BR>成人内容，违禁药品，赌博相关内容 <BR>内容重复 <BR>连向作弊的网站&nbsp;&nbsp;<BR>站内的绝大部分网页有相同的网页title <BR>加入到Link Farm或则Link交换类网站<BR>使用被惩罚过的域名<BR>网站建立在被惩罚的IP上</P>
<P><BR>尽量避免的问题</P>
<P>地址中存在动态变量 <BR>单一图片和Flash的网站 <BR>用Java制作的网站导航条或目录 <BR>用图片做网站导航而不加ALT标签 <BR>〈head〉〈/head〉之间有太多的代码 <BR>存在太多与网站主题无关的内容 <BR>导入链接中购买链接占多数<BR>和作弊的网站在同一服务器上</P>
<P>&nbsp;</P>
<P><BR>搜索引擎提交入口<BR><BR>网站建设完成之后，第一件事情就是向各大搜索引擎提交新网站。搜索引擎提交包<BR>括提交给搜索引擎爬虫和提交给分类目录。提交给搜索引擎爬虫的目的是让搜索引擎将<BR>网站收录到索引数据库。检验网站是否被搜索引擎收录的办法是直接在搜索引擎中搜索<BR>网址，查看能否找到网站结果，也可以通过输入命令site:yoursite获得具体的页面收<BR>录数量。提交给搜索引擎分类目录有两个目的：一是为了用户通过分类目录检索到网站<BR>，二是为网站获得一个高质量的外部链接，有助于增加网站的链接广度。针对自动提交<BR>和手工提交给搜索引擎，新竞争力(www.jingzhengli.cn)一向认为，手工提交是最能保<BR>证营销效果的方式。</P>
<P>中文网站提交给搜索引擎爬虫和分类目录<BR>Google：http://www.Google.com/intl/zh-CN/add_url.html <BR>百度：http://www.Baidu.com/search/url_submit.htm <BR>一搜：http://www.yisou.com/search_submit.html?source=yisou_www_hp<BR>中搜：http://service.chinasearch.com.cn/NetSearch/pageurlrecord/frontpageurl.jsp <BR>搜狐：http://db.sohu.com/regurl/regform.asp?Step=REGFORM&amp;;class= 　<BR>雅虎中国分类目录：http://cn.Yahoo.com/docs/info/suggest.html</P>
<P>英文网站提交给搜索引擎爬虫和分类目录 <BR>Google：http://www.google.com/addurl/?continue=/addurl <BR>MSN：http://search.msn.com/docs/submit.aspx?FORM=WSDD2 <BR>Yahoo：http://search.yahoo.com/info/submit.html （需要注册） <BR>Yahoo分类目录：http://searchmarketing.yahoo.com/dirsb/index.php <BR>Domz分类目录：http://www.dmoz.org <BR>Jayde分类目录：http://dir.jayde.com/cgi-bin/submit.cgi</P>]]></description>
<author>竹子</author>
<pubDate>2008-7-21 22:22:00</pubDate>
</item>
<item>
<title><![CDATA[word转换成pdf]]></title>
<link>http://kuangrun.blog.xj169.com/archives/2008/1095.html</link>
<description><![CDATA[<P>近期需要做将word转换成pdf 故收集些资料</P>
<P>文章引用连接:http://www.haihangedu.com.cn/article/192/Article1683_1.htm</P>
<P>正文:</P>
<P>知识点:线程调用,异步线程,异步线程回调函数,C#的类,WSH宿主脚本开发</P>
<P>前言:由于一个客户的项目中需要将Word文档转换成PDF格式,故写了本篇实站教程<BR>需求分析:客户的项目以B/S结构为主,提供一个WORD文件在后台自动转换成PDF,经过实际测试,如果该篇WORD文档有100多页的话,转换需要20分钟左右的时间(环境:CPU是奔腾M 1.6G,512M内存),整个CPU的占用率近乎95%~100%,此结果告诉客户以后,客户提议:到客户下班后,自动转换PDF,同时如果使用人确认要查看该PDF文档,如果没有转换,提供给客户选择,是现在转换成PDF,还是由服务器在客户下班后,自动转换.</P>
<P>项目功能:按需求分析要写两个功能,<BR>第一为:B/S结构后台转换,要提交给客户选择<BR>第二为:Windows服务自动转换WORD文档到PDF</P>
<P>这两个分类:核心的转换程序都是采用线程的方式执行,只不过第一个功能是针对一个WORD文件,第二个功能针对所有未转换的WORD文档.</P>
<P>分析到现在:我们开始实战转换了!</P>
<P></P>
<P><BR>一:必备工具<BR>安装必须的工具MS VS.Net2003,MS Office2003,Adobe Acrobat 7.0 Professional,post.exe,gs811w32.exe<BR>MS VS.Net2003的安装不说明<BR>MS Office2003的安装不说明</P>
<P>Adobe Acrobat 7.0 Professional安装说明<BR>运行setup.exe文件,出现输入序列号,就运行注册机,用鼠标在第一行刷下就可以看见序列号，复制粘贴到Adobe Acrobat 7.0 Professional安装程序对话框，安装到最后出现注册时,点击PHONE...将安装程序中显示的第二行序列号（第一行是刚才注册机生成的序列号）复制粘贴到注册机的第二行，点击右边的按钮，再用鼠标刷第三行授权号就出来了，将其复制粘贴到安装程序的最后一行，完成安装注册！&nbsp; </P>
<P>post.exe默认安装就可以了,它是一个PDF转换时所需要的脚本<BR>gs811w32.exe默认安装就可以,它其实是个PDF虚拟打印机的驱动</P>
<P></P>
<P><BR>二:配置虚拟打印机<BR>进入WINDOWS的控制面板,进入打印机,点击"添加打印机"图标.在安装对话框上"按一步",出现选择打印机时,在制造商一栏中选择"Generic",在打印机一栏中,选择"MS Publisher Color Printer",然后一路按下一步,知道安装结束.</P>
<P></P>
<P></P>
<P>三:开始写第一个程序(脚本程序)<BR>为什么要使用脚本程序进行转换呢,其实实际测试过程中,使用PDF Distiller的对象引用到C#后,转换成功,但整个PDF Distiller对象不能释放,第二次再转换时,就发生了错误,故此处使用脚本程序实现转换.这样我们只要在C#的程序中调用脚本程序就可以实现WORD到PDF的转换</P>
<P>宿主脚本文件名:ConvertDoc2PDF.js<BR>------------------------------------------------<BR>脚本文件内容:</P>
<P>var files = W.Arguments;<BR>var fso = new ActiveXObject("ing.FileSystemObject");<BR>var word = new ActiveXObject("Word.Application");<BR>var PDF = new ActiveXObject("PDFDistiller.PDFDistiller.1");<BR>word.ActivePrinter = "MS Publisher Color Printer";</P>
<P>//files(0) 为WORD文档文件名<BR>//files(1) 为,转换后需要保存的路径<BR>//调用fso.GetBaseName(files(0))后,为无路径,无扩展名,的文件名<BR>//files.length为文件参数的个数,使用循环可以支持多个WORD文档的转换</P>
<P>var docfile = files(0);<BR>var psfile&nbsp; = files(1) + fso.GetBaseName(files(0)) + ".ps";<BR>var pdffile = files(1) + fso.GetBaseName(files(0)) + ".pdf";<BR>var logfile = files(1) + fso.GetBaseName(files(0)) + ".log";</P>
<P>try{<BR>&nbsp;var doc = word.Documents.Open(docfile);<BR>&nbsp;//WORD文件转成PS文件;<BR>&nbsp;word.PrintOut(false, false, 0, psfile);<BR>&nbsp;doc.Close(0);</P>
<P>&nbsp;//PS文件转成PDF文件;<BR>&nbsp;PDF.FileToPDF(psfile,pdffile,"");</P>
<P>&nbsp;fso.GetFile(psfile).Delete();//删除PS脚本文件<BR>&nbsp;fso.GetFile(logfile).Delete();//删除转换的日志文件</P>
<P>&nbsp;word.Quit();<BR>W.Echo("isUCcess");//成功<BR>&nbsp;W.Quit(0);<BR>}<BR>catch(x)<BR>{<BR>&nbsp;word.Quit();<BR>&nbsp;W.Echo("isfail");//失败<BR>&nbsp;W.Quit(0);<BR>} </P>
<P></P>
<P>然后测试该脚本程序<BR>启动MS-DOS,输入如下命令:<BR>c:\&gt;c //nologo c:\ConvertDoc2PDF.js c:\test.doc c:\</P>
<P>说明:<BR>运行成功后将看到test.pdf文档了<BR>c:\test.doc参数对应的是脚本程序中的files(0)<BR>c:\参数对应的是脚本程序中的files(1)</P>
<P>你可以安照该脚本改写成,支持多个参数,使用FOR循环,一次转换多个WORD文档,此处没有使用多个文件转换功能,是考虑到,该段脚本放在C#的线程中执行,这样一来也可以转换多个WORD文档.</P>
<P></P>
<P><BR>四:使用C#调用ConvertDoc2PDF.js脚本<BR>新建一个C#的WINDOWS应用程序,添加一个按钮button1<BR>添加一个函数,函数名StartConvertPDF<BR>public void StartConvertPDF()<BR>{<BR>&nbsp;Process proc = new Process(); <BR>&nbsp;proc.StartInfo.FileName = "cmd.exe"; <BR>&nbsp;proc.StartInfo.WorkingDirectory = @"c:\"; <BR>&nbsp;proc.StartInfo.CreateNoWindow = true; <BR>&nbsp;proc.StartInfo.UseShellExecute = false; <BR>&nbsp;proc.StartInfo.RedirectStandardInput = true;&nbsp;//输入重定向</P>
<P>&nbsp;proc.Start();<BR>&nbsp;proc.StandardInput.WriteLine(@"c //nologo c:\ConvertDoc2PDF.js c:\test.doc c:\");<BR>&nbsp;proc.StandardInput.WriteLine("exit");<BR>&nbsp;proc.WaitForExit();<BR>}</P>
<P>然后在按钮的CLICK事件中添加调用线程的代码<BR>private void button1_Click(object sender, System.EventArgs e)<BR>{<BR>&nbsp;//定义线程序<BR>&nbsp;Thread thConvert = new Thread(new ThreadStart(StartConvertData));<BR>&nbsp;thConvert.Start();<BR>}</P>
<P>注意:在测试上面的C#程序时,必须添加如下命名空间<BR>using System.Diagnostics;<BR>using System.Threading;</P>
<P></P>
<P>五:健壮的C#调用代码(实际考虑,可放在B/S系统中)<BR>完成第4步的C#测试后,细心的读者,可能看到一点问题,那就是如何得到脚本运行后输出的结果,如何给线程中调用的StartConvertData方法传递参数<BR>1:传递参数,此话说来也可用一篇教程告诉大家线程中方法如何来传递参数,现在就讲一个方案,此种方案很多,我采用一个类,初始化这个类,然后调用该类的方法作为线程执行的方法<BR>2:得到脚本的输出结果,使用Process对象的输出重定向,就是说改变输出方向,使脚本不输出到控制台(MS-DOS窗口),而是重定向输出到C#程序中,并采用线程的异步回调方法,显示脚本运行结果</P>
<P>添加一个新类,类名为ToPdf<BR>using System;<BR>using System.Diagnostics;<BR>using System.ComponentModel;<BR>using System.Windows.Forms;<BR>using System.Data;</P>
<P>namespace Doc2Pdf<BR>{<BR>&nbsp;public class ToPdf<BR>&nbsp;{<BR>&nbsp;&nbsp;private string strWord = "";//此处的WORD文件不含路径<BR>&nbsp;&nbsp;private string sPath = "";<BR>&nbsp;&nbsp;public string sExecResult = "";<BR>&nbsp;&nbsp;public bool bSuccess = false;</P>
<P>&nbsp;&nbsp;public ToPdf(string sParamWord,string sParamPath)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;strWord = sParamWord;<BR>&nbsp;&nbsp;&nbsp;sPath = sParamPath;<BR>&nbsp;&nbsp;}</P>
<P>&nbsp;&nbsp;public void StartConvertPDF()<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;Process proc = new Process(); <BR>　　&nbsp;&nbsp;&nbsp;proc.StartInfo.FileName = "cmd.exe";<BR>　　&nbsp;&nbsp;&nbsp;proc.StartInfo.WorkingDirectory = sPath; <BR>　　&nbsp;&nbsp;&nbsp;proc.StartInfo.CreateNoWindow = true; <BR>　　&nbsp;&nbsp;&nbsp;proc.StartInfo.UseShellExecute = false; <BR>　　&nbsp;&nbsp;&nbsp;proc.StartInfo.RedirectStandardInput = true;//标准输入重定向<BR>proc.StartInfo.RedirectStandardOutput = true;//标准输出重定向 </P>
<P></P>
<P>　　&nbsp;&nbsp;&nbsp;proc.Start();<BR>&nbsp;&nbsp;&nbsp;proc.StandardInput.WriteLine("c //nologo "+sPath+"ConvertDoc2PDF.js "+sPath+strWord+ " "+sPath);<BR>&nbsp;&nbsp;&nbsp;proc.StandardInput.WriteLine("exit");<BR>&nbsp;&nbsp;&nbsp;sExecResult = proc.StandardOutput.ReadToEnd();//返回脚本执行的结果<BR>&nbsp;&nbsp;&nbsp;proc.WaitForExit();<BR>&nbsp;&nbsp;&nbsp;proc.Close();</P>
<P>&nbsp;&nbsp;}</P>
<P>&nbsp;&nbsp;public void EndConvertPDF(System.IAsyncResult ar)//ar参数必须写,是线程执行完成后的回调函数<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;if(sExecResult.IndexOf("isuccess")!=-1)bSuccess=true;<BR>&nbsp;&nbsp;&nbsp;else if(sExecResult.IndexOf("isfail")!=-1)bSuccess=false;<BR>&nbsp;&nbsp;&nbsp;//如果放在B/S系统,你可以在此处写数据库,是成功还是失败,并用一个WEBService程序不断检查数据库,此WEBService程序不放在该回调用函数中<BR>&nbsp;&nbsp;&nbsp;//如果放在C/S系统,回调函数可以不放在类中,以便在窗体程序中调用结果<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR>}</P>
<P><BR>改写原来的button1_Click事件中的代码<BR>-------------------------------------------------------------<BR>private void button1_Click(object sender, System.EventArgs e)<BR>{<BR>&nbsp;ToPdf my2Pdf = new ToPdf("test.doc","c:\\");<BR>&nbsp;ThreadStart thStartConvert = new ThreadStart(my2Pdf.StartConvertPDF);&nbsp;//开始异步调用线程<BR>&nbsp;thStartConvert.BeginInvoke(new AsyncCallback(my2Pdf.EndConvertPDF),null);//设置异步线程的回调函数</P>
<P>&nbsp;//如果需要转换多个WORD,你可以用循环<BR>&nbsp;//如果是B/S系统,可以将本段代码放在ASPX中,并结合客户端的无刷新显示数据的技术,不断访问WEBService程序,以确定PDF是否转换成功或失败<BR>}</P>
<P></P>
<P>六:编写更加健壮的C#调用代码(实际考虑,可放在WINDOWS的服务程序中)<BR>---------------------------------------------------------------<BR>实际使用时,由于转化PDF时CPU的占用率很高,考虑只在同一时间转换一篇WORD文档,放弃异步线程的回调函数的使用,考虑一个WINDOWS的服务程序.<BR>写一个函数CheckData2Convert(),不断的检查没有转换的WORD文档,并使用循环调用ToPdf类中执行转换方法StartConvertPDF</P>
<P>//以下给出,泛代码,用户按照自己的需求,填写完整即可<BR>//bool bStart为全局变量,控制循环的进入与退出<BR>//例:18:30开始检查并转换,那么18:30时,bStart=true;并启动转换线程<BR>//6:30停止转换线程,bStart=fasle;</P>
<P>private void CheckData2Convert()<BR>{<BR>&nbsp;//检查指定目录下的没有转换的WORD文档,你同样可以检查数据库中记录的没有转换的WORD文档<BR>&nbsp;string sPath = System.Threading.Thread.GetDomain().BaseDirectory;&nbsp;//当前的路径<BR>&nbsp;while(bStart)<BR>&nbsp;{<BR>&nbsp;&nbsp;int iFileCount = CheckWord();&nbsp;//CheckWord为一个方法,检查当前没有转换的WORD文档,返回没有转换的文件数,该方法的代码由读者自己编写<BR>&nbsp;&nbsp;for(int i=0;i&lt;iFileCount;i++)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;string sWord = GetWordFileName(i)&nbsp;//GetWordFileName为一个方法,返回一个不带路径的WORD文件名,该方法的代码由读者自己编写<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//ToPdf类中的StartConvertPDF()方法使用的是不带路径的WORD文件名<BR>&nbsp;&nbsp;&nbsp;ToPdf my2Pdf = new ToPdf(sWord ,sPath);<BR>&nbsp;&nbsp;&nbsp;my2Pdf.StartConvertPDF();</P>
<P>&nbsp;&nbsp;&nbsp;if(my2Pdf.sExecResult.IndexOf("isuccess")!=-1)<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;//成功,写日志,或回写数据库<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;else if(my2Pdf.sExecResult.IndexOf("isfail")!=-1)<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;//失败,写日志,或回写数据库<BR>} </P>
<P></P>
<P>&nbsp;&nbsp;}</P>
<P>&nbsp;&nbsp;if(!bStart)break;<BR>&nbsp;&nbsp;Thread.Sleep(1000);<BR>&nbsp;}<BR>}</P>
<P>然后在服务的开始事件中,启动线程<BR>protected override void OnStart(string[] args)<BR>{<BR>&nbsp;//可以使用一个开始定时器,检查是否到开始时间,时间一到,就开始执行线程,此处的开始执行线程可以放在开始定时事件中<BR>&nbsp;//可以使用一个结束定时器,检查是否到结束时间,时间一到,就结束线程,结束线程的代码可以放在结束定时事件中<BR>&nbsp;//注意:应该使用组件中的定时器,而不是Windows的FORMS中的定时器<BR>&nbsp;//该定时器的类名为System.Timers.Timer,千万别搞错,不然执行不会正常的<BR>&nbsp;bStart = true;<BR>&nbsp;Thread thConvert = new Thread(new ThreadStart(StartConvertData));<BR>&nbsp;thConvert.Start();&nbsp;<BR>}</P>
<P></P>
<P>然后在服务的结束事件中,设置停止线程的标识bStart= false<BR>protected override void OnStop()<BR>{<BR>&nbsp;bStart = false;&nbsp;<BR>&nbsp;//为何次处不停止线程呢,因为考虑到,现在线程正在转换WORD文档,但没有结束,所以只设置停止标识,转换完成后,线程也执行结束了.<BR>}</P>
<P></P>
<P>结束语:<BR>Adobe Acrobat 7.0 Professional,post.exe,gs811w32.exe这三个文件可以在itbaby.jss.cn下载,都包含在同一个RAR的压缩文件中了<BR>itbaby.jss.cn是动态域名,主机在作者家里,如果网站不能访问,说明电脑没有开,请稍后几天再试.<BR>作者:Javasuki</P>]]></description>
<author>竹子</author>
<pubDate>2008-5-4 10:20:00</pubDate>
</item>
<item>
<title><![CDATA[v1.1.4322\Config\machine.config 行: 198]]></title>
<link>http://kuangrun.blog.xj169.com/archives/2008/1062.html</link>
<description><![CDATA[<STRONG>分析器错误信息: 访问被拒绝：“Microsoft.Web.UI.WebControls”。<BR>源错误: <BR>行 197： &lt;add assembly="System.Web.Mobile, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/&gt;<BR>行 198： &lt;add assembly="*"/&gt;<BR>.....<BR>源文件: c:\windows\microsoft.net\work\v1.1.4322\Config\machine.config 行: 198 <BR><BR><BR>原因：<BR><BR>由于改动频繁， c:\windows\microsoft.net\work\v1.1.4322\Temporary ASP.NET Files\ 目录下相应的目录或文件被Index Server锁定，重建索引。所以一般几分钟后会释放，恢复正常。<BR></STRONG><FONT color=#0000ff>解决方案：<BR></FONT>1.进入 控制面板-〉管理工具-〉服务，找到Indexing Service并点击右键将其停止.<BR>或者：<BR>2.可以在MS－DOS下输入 Net stop cisvc 命令禁止！]]></description>
<author>竹子</author>
<pubDate>2008-4-21 21:29:00</pubDate>
</item>
<item>
<title><![CDATA[sqlserver数据库1433端口不能启用]]></title>
<link>http://kuangrun.blog.xj169.com/archives/2008/1061.html</link>
<description><![CDATA[<P>在安装完数据库后发现数据库端口一直是关闭的,启动不了,后才发现是因为没有打sp4的补丁.然而将sp4安装后.故障依然如故.后在查询分析器上查询版本号</P>
<P>select @@version </P>
<P>发现版本号小于760 后上网找才知道补丁没有打上,但是明明装上补丁了,只有继续找资料.突然有人提到需要执行sp4安装目录下的setup.bat文件才恍然大悟,原来真的很菜.</P>]]></description>
<author>竹子</author>
<pubDate>2008-4-21 21:16:00</pubDate>
</item>
<item>
<title><![CDATA[sqlserver日志中按时间点还原数据]]></title>
<link>http://kuangrun.blog.xj169.com/archives/2008/1057.html</link>
<description><![CDATA[<SPAN lang=EN-US><FONT size=+0><FONT size=3><SPAN class=093564705-16102004><FONT color=#0000ff size=4>前提条件</FONT>：myBBS是数据库test中的一个表,</SPAN></FONT></FONT></SPAN> 
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=+0><FONT size=3><SPAN class=093564705-16102004>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 数据库test的Recovery Model为Full,<FONT color=#0000ff>Auto Close,Auto Shrink</FONT>两个选项未选中。</SPAN></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=+0><FONT size=3><SPAN class=093564705-16102004>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 数据库test的data files和log files均为默认的自动增长状态。</SPAN></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=+0><FONT size=3><SPAN class=093564705-16102004></SPAN></FONT></FONT></SPAN>&nbsp;</P><SPAN lang=EN-US><FONT size=+0><FONT size=3><SPAN class=093564705-16102004>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=+0><FONT size=+0><SPAN style="mso-ignore: vglayout"></SPAN><SPAN lang=EN-US><FONT size=3>A：<FONT color=#0000ff>2004<SPAN class=093564705-16102004>/</SPAN></FONT><SPAN class=093564705-16102004><FONT color=#0000ff>10/13</FONT>,16:00进行数据库备份，<FONT color=#0000ff>backup database test to disk='d:\db\1600.bak' with init</FONT></SPAN></FONT></SPAN></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=+0><FONT size=+0><SPAN lang=EN-US><FONT size=3><SPAN class=093564705-16102004>B：2004/10/14,13:00对数据库进行了update,delete等操作；</SPAN></FONT></SPAN></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=+0><FONT size=+0><SPAN lang=EN-US><FONT size=3><SPAN class=093564705-16102004>C：<FONT color=#0000ff>2004/10/15</FONT>,18:00使用delete mybbs where id&gt;300时，语句误写成delete mybbs,因而删除了表mybbs中的所有数据。</SPAN></FONT></SPAN></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=+0><FONT size=+0><SPAN lang=EN-US><FONT size=3><SPAN class=093564705-16102004></SPAN></FONT></SPAN></FONT></FONT></SPAN>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=+0><FONT size=+0><SPAN lang=EN-US><FONT size=3><SPAN class=093564705-16102004>现在在C点,C点对数据库进行了误操作，我们希望数据库能够恢复到C之前的状态，</SPAN></FONT></SPAN></FONT></FONT></SPAN><SPAN lang=EN-US><FONT size=+0><FONT size=+0><SPAN lang=EN-US><FONT size=3><SPAN class=093564705-16102004>比如恢复到10月15日17:59分的状态。</SPAN></FONT></SPAN></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=+0><FONT size=+0><SPAN lang=EN-US><FONT size=3><SPAN class=093564705-16102004>要恢复数据库<SPAN class=093564705-16102004>B点，<FONT color=#ff00ff><FONT color=#000000>使用的是</FONT>A点备分的数据库1600.bak；</FONT><FONT color=#000000>而使用的<FONT color=#ff00ff>日志备分是最新的备分1820.logs</FONT>；因而进行如下操作：</FONT></SPAN></SPAN></FONT></SPAN></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=+0><FONT size=+0><SPAN lang=EN-US><FONT size=3><SPAN class=093564705-16102004></SPAN></FONT></SPAN></FONT></FONT></SPAN>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=+0><FONT size=+0><SPAN lang=EN-US><FONT color=#0000ff><SPAN class=093564705-16102004>--备分日志：</SPAN></FONT></SPAN></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=+0><FONT size=+0><SPAN lang=EN-US><FONT color=#0000ff><SPAN class=093564705-16102004>BACKUP LOG test TO DISK='d:\1820.logs' WITH INIT</SPAN></FONT></SPAN></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=+0><FONT size=+0><SPAN lang=EN-US><FONT color=#0000ff><SPAN class=093564705-16102004></SPAN></FONT></SPAN></FONT></FONT></SPAN>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=+0><FONT size=+0><SPAN lang=EN-US><FONT color=#0000ff><SPAN class=093564705-16102004>--恢复数据库1600.bak,使用WITH NORECOVERY参数：</SPAN></FONT></SPAN></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=+0><FONT size=+0><SPAN lang=EN-US><FONT color=#0000ff><SPAN class=093564705-16102004>RESTORE DATABASE test from disk='d:\db\1640.bak' WITH NORECOVERY</SPAN></FONT></SPAN></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=+0><FONT size=+0><SPAN lang=EN-US><FONT color=#0000ff><SPAN class=093564705-16102004></SPAN></FONT></SPAN></FONT></FONT></SPAN>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=+0><FONT size=+0><SPAN lang=EN-US><FONT color=#0000ff><SPAN class=093564705-16102004>--使用日志恢复数据库到10月15日17:59分：</SPAN></FONT></SPAN></FONT></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT size=+0><FONT size=+0><SPAN lang=EN-US><FONT size=+0><SPAN class=093564705-16102004><FONT color=#0000ff>RESTORE LOG test<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FROM disk='d:\1820.logs' WITH RECOVERY,STOPAT='10/15/2004 17:59'</FONT><BR></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN class=093564705-16102004></SPAN></FONT>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN class=093564705-16102004>上面的三条Transact SQL语句的对应过程:</SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN class=093564705-16102004></SPAN></FONT><FONT size=3><SPAN class=093564705-16102004>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.恢复数据库到A点；</SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN class=093564705-16102004>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.执行A-B之间的log记录，把数据库恢复到B点.</SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN class=093564705-16102004></SPAN></FONT>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN class=093564705-16102004></SPAN></FONT>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN class=093564705-16102004>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN class=093564705-16102004>这样就恢复数据库到了指定的时间点。</SPAN>如果恢复不成功，可能的原因是：1.未使用正确的备分数据库；2.数据库选项选中了Auto Shrink.</SPAN></FONT></P></FONT></FONT></SPAN></SPAN></FONT></FONT></SPAN>]]></description>
<author>竹子</author>
<pubDate>2008-4-21 15:46:00</pubDate>
</item>
<item>
<title><![CDATA[日常可用的网址]]></title>
<link>http://kuangrun.blog.xj169.com/archives/2008/1011.html</link>
<description><![CDATA[<P>1.网页特效</P>
<P><A href="http://myjs.chinaz.com/">http://myjs.chinaz.com/</A></P>
<P>&nbsp;</P>
<P>2. 网页设计</P>
<P><A href="http://www.webjx.com/">http://www.webjx.com/</A></P>
<P>&nbsp;</P>
<P>3. 嵌入式开发</P>
<P><A href="http://www.cnemb.com/">http://www.cnemb.com/</A></P>
<P>4.C#连接数据库大全</P>
<P><A href="http://www.connectionstrings.com/">http://www.connectionstrings.com/</A></P>]]></description>
<author>竹子</author>
<pubDate>2008-4-9 12:26:00</pubDate>
</item>
<item>
<title><![CDATA[邮箱登陆]]></title>
<link>http://kuangrun.blog.xj169.com/archives/2008/1010.html</link>
<description><![CDATA[<P>&lt;style&gt;<BR>&lt;!--<BR>td,body,table {font-family: "宋体"; font-size: 12px}<BR>A:link {text-decoration: none; color: #000088;}<BR>A:visited {text-decoration: none; color: #000088;}<BR>A:active {text-decoration: underline;color: #FF0000;}<BR>A:hover {text-decoration: underline; color: #FF0000;}</P>
<P>.nl { font-family: "宋体"; font-size: 12px}<BR>A.nl:link {text-decoration: none; color: #000000;}<BR>A.nl:visited {text-decoration: none; color: #000000;}<BR>A.nl:active {text-decoration: none;color: #000000;}<BR>A.nl:hover {text-decoration: none; color: #000000;}</P>
<P>.nl2 { font-family: "宋体"; font-size: 12px}<BR>A.nl2:link {text-decoration: none; color: #0000ff;}<BR>A.nl2:visited {text-decoration: none; color: #0000ff;}<BR>A.nl2:active {text-decoration: none;color: #0000ff;}<BR>A.nl2:hover {text-decoration: none; color: #0000ff;}</P>
<P><BR>--&gt;<BR>&lt;/style&gt;</P>
<P>&lt; language="Java"&gt;</P>
<P>ci(n,v)<BR>{<BR>&nbsp; var i=createElement("input");<BR>&nbsp; i.type="hidden";<BR>&nbsp; i.name=n;<BR>&nbsp; i.=v;<BR>&nbsp; mailloginfrm.appendChild(i);<BR>}<BR>wo(url,title)<BR>{<BR>r=Math.round(Math.random()*(32767-1))+1;<BR>open(url,title+r);<BR>}</P>
<P>wck()<BR>{<BR>&nbsp; mymaildomain=mailloginfrm.maildomain.;<BR>&nbsp; var exp=new Date();<BR>&nbsp; exp.setTime(exp.getTime()+(3*365*24*60*60*1000));<BR>&nbsp; host=location.hostname;<BR>&nbsp; if(host.indexOf("521yy.com")&gt;=0)<BR>&nbsp;&nbsp;&nbsp; ="mymaildomain="+mymaildomain+"; expires=" + exp.toGMTString() +&nbsp; "; path=/; domain=.521yy.com";<BR>&nbsp; else<BR>&nbsp;&nbsp;&nbsp; ="mymaildomain="+mymaildomain+"; expires=" + exp.toGMTString() +&nbsp; "; path=/; domain=.521yy.com";<BR>}<BR>Read(Name) <BR>{<BR>&nbsp; var String=;<BR>&nbsp; var Set=String.split(';');<BR>&nbsp; var SetSize=Set.length;<BR>&nbsp; var Pieces;<BR>&nbsp; var Return="";<BR>&nbsp; var x=0;</P>
<P>&nbsp; for(x=0;((x&lt;SetSize)&amp;&amp;(Return==""));x++)<BR>&nbsp; {<BR>&nbsp;&nbsp;&nbsp; Pieces=Set[x].split('=');<BR>&nbsp;&nbsp;&nbsp; if(Pieces[0].substring(0,1)==' ')<BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Pieces[0]=Pieces[0].substring(1,Pieces[0].length);<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; if(Pieces[0]==Name)<BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Return=Pieces[1];<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp; }<BR>&nbsp; return(Return);<BR>}</P>
<P>openwin()<BR>{<BR>frm=mailloginfrm;<BR>s=frm.maildomain.options[frm.maildomain.selectedIndex].;<BR>r=Math.round(Math.random()*(32767-1))+1;</P>
<P>switch(s)<BR>{</P>
<P>case "qq.com":<BR>&nbsp; wo("<A href="http://mail.qq.com/%22,%22qqmail%22+r">http://mail.qq.com/","qqmail"+r</A>);<BR>&nbsp; break;<BR>case "hotmail.com":<BR>case "msn.com":<BR>&nbsp; fu=frm.u0.;<BR>&nbsp; if(fu!="http://blog.xj169.com/")<BR>&nbsp; {<BR>&nbsp;&nbsp;&nbsp; frm.action="<A href="https://login.passport.com/ppsecure/post.srf?lc=2052&amp;id=2&amp;tw=20&amp;fs=1&amp;cbid=24325&amp;da=passport.com&amp;kpp=2&amp;svc=mail&amp;msppjph=1">https://login.passport.com/ppsecure/post.srf?lc=2052&amp;id=2&amp;tw=20&amp;fs=1&amp;cbid=24325&amp;da=passport.com&amp;kpp=2&amp;svc=mail&amp;msppjph=1</A>";<BR>&nbsp;&nbsp;&nbsp; if(s=="http://blog.xj169.com/hotmail.com") frm.domain.="hotmail.com";<BR>&nbsp;&nbsp;&nbsp; else frm.domain.="msn.com";<BR>&nbsp;&nbsp;&nbsp; frm.login.=fu;<BR>&nbsp;&nbsp;&nbsp; frm.passwd.=" ";<BR>&nbsp;&nbsp;&nbsp; frm.submit();<BR>&nbsp; }<BR>&nbsp; else<BR>&nbsp;&nbsp;&nbsp; wo("<A href='https://login.passport.com/ppsecure/post.srf?lc=2052&amp;id=2&amp;tw=20&amp;fs=1&amp;cbid=24325&amp;da=passport.com&amp;kpp=2&amp;svc=mail&amp;msppjph=1","hotmail"+r'>https://login.passport.com/ppsecure/post.srf?lc=2052&amp;id=2&amp;tw=20&amp;fs=1&amp;cbid=24325&amp;da=passport.com&amp;kpp=2&amp;svc=mail&amp;msppjph=1","hotmail"+r</A>);<BR>&nbsp; break;<BR>}&nbsp; //switch end</P>
<P>} //funcion end</P>
<P>checkmail(frm)<BR>{<BR>&nbsp; fu=frm.u0.;<BR>&nbsp; fp=frm.p0.;<BR>&nbsp; fm=frm.maildomain.;</P>
<P>&nbsp; if(!fm) <BR>&nbsp; { alert("请选择你的信箱!");<BR>&nbsp;&nbsp;&nbsp; return false;<BR>&nbsp; }&nbsp; <BR>&nbsp; if(!fu&amp;&amp;fm!="qq.com"&amp;&amp;fm!="hotmail.com"&amp;&amp;fm!="msn.com")<BR>&nbsp; {<BR>&nbsp;&nbsp;&nbsp; alert("请输用户名!");<BR>&nbsp;&nbsp;&nbsp; frm.u0.focus();<BR>&nbsp;&nbsp;&nbsp; return false;<BR>&nbsp; }<BR>&nbsp; if(!fp&amp;&amp;fm!="qq.com"&amp;&amp;fm!="hotmail.com"&amp;&amp;fm!="msn.com")<BR>&nbsp; {<BR>&nbsp;&nbsp;&nbsp; alert("请输密码!");<BR>&nbsp;&nbsp;&nbsp; frm.p0.focus();<BR>&nbsp;&nbsp;&nbsp; return false;<BR>&nbsp; }<BR>&nbsp; <BR>&nbsp; mailloginfrm.p0.="";</P>
<P>switch(fm)<BR>{<BR>case "126.com":<BR>&nbsp; frm.action="<A href="http://entry.126.com/cgi/login">http://entry.126.com/cgi/login</A>";<BR>&nbsp; frm.user.=fu;<BR>&nbsp; frm.pass.=fp;<BR>&nbsp; frm.domain.="http://blog.xj169.com/126.com";<BR>&nbsp; ci("language","0");<BR>&nbsp; ci("b","");<BR>&nbsp; frm.submit();<BR>&nbsp; break;<BR>case "163.com":<BR>&nbsp; frm.username.=fu;<BR>&nbsp; frm.password.=fp;<BR>&nbsp; ci("url","<A href="http://fm163.163.com/coremail/fcg/ntesdoor2?lightweight=1&amp;verify=1&amp;language=-1&amp;style=15">http://fm163.163.com/coremail/fcg/ntesdoor2?lightweight=1&amp;verify=1&amp;language=-1&amp;style=15</A>");<BR>&nbsp; frm.action="http://blog.xj169.com/<A href="http://reg.163.com/CheckUser.jsp">http://reg.163.com/CheckUser.jsp</A>";<BR>&nbsp; frm.submit();<BR>&nbsp; break;<BR>case "188.com":<BR>&nbsp; frm.action="http://blog.xj169.com/<A href="http://reg.mail.188.com/servlet/coremail/login?language=0&amp;style=1">http://reg.mail.188.com/servlet/coremail/login?language=0&amp;style=1</A>"<BR>&nbsp; frm.user.=fu;<BR>&nbsp; frm.pass.=fp;<BR>&nbsp; frm.submit();<BR>&nbsp; break;<BR>case "vip.163.com":<BR>&nbsp; frm.action="http://blog.xj169.com/<A href="http://vip.163.com/logon.m">http://vip.163.com/logon.m</A>"<BR>&nbsp; frm.username.=fu;<BR>&nbsp; frm.password.=fp;<BR>&nbsp; frm.style.="http://blog.xj169.com/";<BR>&nbsp; ci("enterVip","true");<BR>&nbsp; frm.submit();<BR>&nbsp; break;<BR>case "sina.com":<BR>&nbsp; frm.action="<A href="http://mail.sina.com.cn/cgi-bin/login.cgi">http://mail.sina.com.cn/cgi-bin/login.cgi</A>";<BR>&nbsp; ci("product","mail");<BR>&nbsp; ci("u",fu);<BR>&nbsp; ci("psw",fp);<BR>&nbsp; frm.submit();<BR>&nbsp; break;<BR>case "vip.sina.com":<BR>&nbsp; frm.action="http://blog.xj169.com/<A href="http://vip.sina.com.cn/cgi-bin/login.cgi">http://vip.sina.com.cn/cgi-bin/login.cgi</A>";<BR>&nbsp; ci("domainid","0");<BR>&nbsp; frm.user.=fu;<BR>&nbsp; frm.pass.=fp;<BR>&nbsp; frm.submit();<BR>&nbsp; break;<BR>case "sina.cn":<BR>&nbsp; frm.action="http://blog.xj169.com/<A href="http://vip.sina.com.cn/cgi-bin/login.cgi">http://vip.sina.com.cn/cgi-bin/login.cgi</A>";<BR>&nbsp; ci("domainid","2");<BR>&nbsp; frm.user.=fu;<BR>&nbsp; frm.pass.=fp;<BR>&nbsp; frm.submit();<BR>&nbsp; break;<BR>case "my3ia.sina.com":<BR>&nbsp; frm.action="http://blog.xj169.com/<A href="http://my3ia.sina.com/cgi-bin/login.cgi">http://my3ia.sina.com/cgi-bin/login.cgi</A>";<BR>&nbsp; frm.user.=fu;<BR>&nbsp; frm.pass.=fp;<BR>&nbsp; frm.submit();<BR>&nbsp; break;</P>
<P>case "sohu.com":<BR>&nbsp; frm.action="<A href="http://passport.sohu.com/login.jsp">http://passport.sohu.com/login.jsp</A>";<BR>&nbsp; frm.loginid.=fu+"@sohu.com";<BR>&nbsp; frm.passwd.=fp;<BR>&nbsp; ci("fl","1");<BR>&nbsp; ci("vr","1|1");<BR>&nbsp; ci("appid","1000");<BR>&nbsp; ci("ru","<A href="http://login.mail.sohu.com/servlet/LoginServlet">http://login.mail.sohu.com/servlet/LoginServlet</A>");<BR>&nbsp; ci("eru","<A href="http://login.mail.sohu.com/login.jsp">http://login.mail.sohu.com/login.jsp</A>");<BR>&nbsp; ci("ct","1173080990");<BR>&nbsp; ci("sg","5082635c77272088ae7241ccdf7cf062");<BR>&nbsp; frm.submit();<BR>&nbsp; break;<BR>case "vip.sohu.com":<BR>&nbsp; frm.action="http://blog.xj169.com/<A href="http://passport.sohu.com/login.jsp">http://passport.sohu.com/login.jsp</A>";<BR>&nbsp; frm.loginid.=fu+"@vip.sohu.com";<BR>&nbsp; frm.passwd.=fp;<BR>&nbsp; ci("appid","1013");<BR>&nbsp; ci("ru","<A href="http://vip.sohu.com/login/viplogin11.jsp">http://vip.sohu.com/login/viplogin11.jsp</A>");<BR>&nbsp; ci("fl","1");<BR>&nbsp; ci("ct","1173857434");<BR>&nbsp; ci("vr","1|1");<BR>&nbsp; ci("eru","");<BR>&nbsp; ci("sg","885ebb7884194ee547f224fc8a6a5877");<BR>&nbsp; frm.submit();<BR>&nbsp; break;<BR>case "tom.com":<BR>&nbsp; frm.action="http://blog.xj169.com/<A href="http://bjweb.mail.tom.com/cgi/163/login_pro.cgi">http://bjweb.mail.tom.com/cgi/163/login_pro.cgi</A>";<BR>&nbsp; ci("type","0");<BR>&nbsp; frm.style.="http://blog.xj169.com/10";<BR>&nbsp; frm.user.=fu;<BR>&nbsp; frm.pass.=fp;<BR>&nbsp; frm.submit();<BR>&nbsp; break;<BR>case "263.net":<BR>&nbsp; frm.action="<A href="http://g2wm.263.net/xmweb">http://g2wm.263.net/xmweb</A>";<BR>&nbsp; ci("func","login");<BR>&nbsp; frm.domain.="http://blog.xj169.com/263.net";<BR>&nbsp; frm.style.="3";<BR>&nbsp; ci("usr",fu);<BR>&nbsp; frm.pass.=fp;<BR>&nbsp; frm.submit();<BR>&nbsp; break;<BR>case "yeah.net":<BR>&nbsp; frm.action="<A href="http://entry.yeah.net/cgi/login">http://entry.yeah.net/cgi/login</A>";<BR>&nbsp; ci("b","");<BR>&nbsp; frm.domain.="http://blog.xj169.com/yeah.net";<BR>&nbsp; ci("selDomain","yeah.net");<BR>&nbsp; frm.user.=fu;<BR>&nbsp; frm.pass.=fp;<BR>&nbsp; frm.submit();<BR>&nbsp; break;</P>
<P>case "yahoo.com.cn":<BR>&nbsp; frm.action="<A href="http://edit.bjs.yahoo.com/config/login">http://edit.bjs.yahoo.com/config/login</A>";<BR>&nbsp; frm.login.=fu;<BR>&nbsp; frm.passwd.=fp;<BR>&nbsp; frm.submit();<BR>&nbsp; break;</P>
<P>case "citiz.net":<BR>&nbsp; frm.action="<A href="http://mail.citiz.net/default/login_billing.jsp">http://mail.citiz.net/default/login_billing.jsp</A>";<BR>&nbsp; frm.username.=fu;<BR>&nbsp; frm.password.=fp;<BR>&nbsp; frm.submit();<BR>&nbsp; break;<BR>case "mail.china.com":<BR>&nbsp; frm.action="http://blog.xj169.com/<A href="http://freemail.china.com/extend/gb/NULL/NULL/NULL/SignIn.gen">http://freemail.china.com/extend/gb/NULL/NULL/NULL/SignIn.gen</A>";<BR>&nbsp; frm.LoginName.=fu;<BR>&nbsp; frm.passwd.=fp;<BR>&nbsp; frm.submit();<BR>&nbsp; break;<BR>case "china.com":<BR>&nbsp; frm.action="http://blog.xj169.com/<A href="http://mail.china.com/coremail/fcg/login">http://mail.china.com/coremail/fcg/login</A>";<BR>&nbsp; frm.user.=fu;<BR>&nbsp; frm.pass.=fp;<BR>&nbsp; frm.submit();<BR>&nbsp; break;</P>
<P>case "21cn.com":<BR>&nbsp; frm.action="<A href="http://webmail.21cn.com/NULL/NULL/NULL/NULL/NULL/SignIn.gen">http://webmail.21cn.com/NULL/NULL/NULL/NULL/NULL/SignIn.gen</A>";<BR>&nbsp; frm.LoginName.=fu;<BR>&nbsp; frm.passwd.=fp;<BR>&nbsp; frm.submit();<BR>&nbsp; break;<BR>case "21cn.net":<BR>&nbsp; frm.action="http://blog.xj169.com/<A href="http://webmail.21cn.net/nature/gb/NULL/NULL/NULL/SignIn.gen">http://webmail.21cn.net/nature/gb/NULL/NULL/NULL/SignIn.gen</A>";<BR>&nbsp; ci("NeedIPCheck3","on");<BR>&nbsp; ci("NeedMoreSecurity3","ON");<BR>&nbsp; frm.LoginName.=fu;<BR>&nbsp; frm.passwd.=fp;<BR>&nbsp; frm.submit();<BR>&nbsp; break;<BR>case "xinhuanet.com":<BR>&nbsp; frm.action="http://blog.xj169.com/<A href="http://mail.xinhuanet.com/login.jsp">http://mail.xinhuanet.com/login.jsp</A>";<BR>&nbsp; ci("domainname","xinhuanet.com");<BR>&nbsp; frm.username.=fu;<BR>&nbsp; frm.password.=fp;<BR>&nbsp; frm.submit();<BR>&nbsp; break;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </P>
<P>case "eyou.com":<BR>&nbsp; frm.action="<A href="http://www.eyou.com/cgi-bin/login">http://www.eyou.com/cgi-bin/login</A>";<BR>&nbsp; frm.LoginName.=fu;<BR>&nbsp; ci("Password",fp);<BR>&nbsp; frm.submit();<BR>&nbsp; break;</P>
<P>case "gmail.com":<BR>&nbsp; frm.action="<A href="https://www.google.com/accounts/ServiceLoginAuth">https://www.google.com/accounts/ServiceLoginAuth</A>";<BR>&nbsp; ci("continue","<A href="http://gmail.google.com/gmail?ui=html&amp;amp;zy=l">http://gmail.google.com/gmail?ui=html&amp;amp;zy=l</A>");<BR>&nbsp; ci("rm","false");<BR>&nbsp; ci("passive","true");<BR>&nbsp; ci("Email",fu);<BR>&nbsp; ci("Passwd",fp);<BR>&nbsp; ci("Persistent","yes");<BR>&nbsp; frm.submit();<BR>&nbsp; break;</P>
<P>case "hotmail.com":<BR>case "msn.com":<BR>&nbsp; frm.action="<A href="https://login.passport.com/ppsecure/post.srf?lc=2052&amp;id=2&amp;tw=20&amp;fs=1&amp;cbid=24325&amp;da=passport.com&amp;kpp=2&amp;svc=mail&amp;msppjph=1">https://login.passport.com/ppsecure/post.srf?lc=2052&amp;id=2&amp;tw=20&amp;fs=1&amp;cbid=24325&amp;da=passport.com&amp;kpp=2&amp;svc=mail&amp;msppjph=1</A>";<BR>&nbsp; if(s=="http://blog.xj169.com/hotmail.com") frm.domain.="hotmail.com";<BR>&nbsp; else frm.domain.="msn.com";<BR>&nbsp; frm.login.=fu;<BR>&nbsp; frm.passwd.=" ";<BR>&nbsp; frm.submit();<BR>&nbsp; break;<BR>case "qq.com":<BR>&nbsp; wo("<A href="http://mail.qq.com/%22,%22qqmail%22+r">http://mail.qq.com/","qqmail"+r</A>);<BR>&nbsp; break;</P>
<P>}</P>
<P>if(fm!="hotmail.com"&amp;&amp;fm!="msn.com"&amp;&amp;fm!="qq.com")<BR>{ wck(); }<BR>return false;</P>
<P>}</P>
<P>&lt;/&gt;</P>
<P>&nbsp;</P>
<P>&lt;table border="0" cellpadding="0" cellspacing="0" width="100%"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;&lt;td&gt;<BR>&lt;!--邮箱登录表格开始--&gt;<BR>&lt;table id="maillogintable" border='0' align='center'&gt;<BR>&lt;tr&gt;&lt;form name="mailloginfrm" action="" method="POST" target=_blank onSubmit="return checkmail(this);"&gt;<BR>&lt;!--td1--&gt;&lt;td width="46%" nowrap&gt;&lt;input type=hidden name=domain&gt;&lt;input type=hidden name=style&gt;&lt;input type=hidden name=user&gt;&lt;input type=hidden name=pass&gt;&lt;input type=hidden name=username&gt;&lt;input type=hidden name=password&gt;&lt;input type=hidden name=LoginName&gt;&lt;input type=hidden name=passwd&gt;&lt;input type=hidden name=loginid&gt;&lt;input type=hidden name=login&gt;&lt;/td&gt;<BR>&lt;/tr&gt;<BR>&lt;tr&gt;<BR>&lt;!--td2--&gt;&lt;td nowrap align="right"&gt;用户名:&lt;/td&gt;<BR>&lt;!--td3--&gt;&lt;td nowrap&gt;&lt;input id="mailuser" type="text" name="u0" size=9 style="font-size: 13px" maxlength='30' =this.select()&gt;<BR>&lt;/tr&gt;<BR>&lt;tr&gt;<BR>&lt;td nowrap align="right"&gt;邮箱类型:&lt;/td&gt;<BR>&lt;td&gt;&lt;select name=maildomain style="font-size: 13px" onChange="openwin();"&gt;<BR>&nbsp; &lt;&gt;</P>
<P>ml=new Array("126.com","163.com","tom.com","yahoo.com.cn","sina.com","sohu.com","21cn.com","qq.com","-","188.com","vip.163.com","263.net","21cn.net","vip.sina.com","vip.sohu.com","gmail.com","hotmail.com","msn.com","china.com","mail.china.com","yeah.net","citiz.net","eyou.com","xinhuanet.com","sina.cn");<BR>n=ml.length;<BR>mymaildomain=Read("mymaildomain");<BR>if(mymaildomain=="")<BR>&nbsp; write("&lt;option selected&nbsp; style='font-size: 13px'&gt;请选择你的邮箱&lt;/option&gt;");<BR>else<BR>&nbsp; write("&lt;option style='font-size: 13px'&gt;请选择你的邮箱&lt;/option&gt;");</P>
<P>&nbsp; for(i=0;i&lt;n;i++)<BR>&nbsp; {<BR>&nbsp;&nbsp;&nbsp; if(ml[i]=="-")<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write("&lt;option =''&gt;---------------&lt;/option&gt;");<BR>&nbsp;&nbsp;&nbsp; else<BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(ml[i]==mymaildomain)&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write("&lt;option selected ='"+ml[i]+"'&gt;@"+ml[i]+"&lt;/option&gt;");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write("&lt;option ='"+ml[i]+"'&gt;@"+ml[i]+"&lt;/option&gt;");<BR>&nbsp;&nbsp;&nbsp; } <BR>&nbsp; }</P>
<P>&nbsp; &lt;/&gt;<BR>&lt;/select&gt;&lt;/td&gt;<BR>&nbsp; &lt;/tr&gt;<BR>&nbsp; &lt;tr&gt;<BR>&lt;!--td4--&gt;&lt;td nowrap align="right"&gt;密码:&lt;/td&gt;<BR>&lt;!--td5--&gt;&lt;td nowrap&gt; &lt;input id="mailpass" type="password" name="p0" size=9 style="font-size: 11px" maxlength='30' =this.select()&gt; <BR>&lt;/td&gt;<BR>&lt;/tr&gt;<BR>&lt;tr&gt;<BR>&lt;td colspan="2" align="center"&gt;<BR>&lt;input type="submit" ="登录" style="font-size: 12px"&gt;&lt;/td&gt;<BR>&lt;/tr&gt;&lt;/form&gt;<BR>&lt;/table&gt;<BR>&lt;!--邮箱登录表格结束--&gt;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;&lt;/tr&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/table&gt;</P>
<P>&nbsp;</P>]]></description>
<author>竹子</author>
<pubDate>2008-4-8 16:13:00</pubDate>
</item>
<item>
<title><![CDATA[此项目的URL位于Internet区域]]></title>
<link>http://kuangrun.blog.xj169.com/archives/2008/931.html</link>
<description><![CDATA[<P>如果是ie7.0的问题</P>
<P>则对ie如此设置即可</P>
<P><STRONG><FONT size=2>在IE选项-&gt;"安全设置"-&gt;"自定义级别"里有"用户验证"，确认选中"自动使用当前用户名和密码登录"</FONT></STRONG></P>]]></description>
<author>竹子</author>
<pubDate>2008-3-15 15:08:00</pubDate>
</item>
<item>
<title><![CDATA[更改sql server表、存储过程、视图的所有者的方法]]></title>
<link>http://kuangrun.blog.xj169.com/archives/2008/919.html</link>
<description><![CDATA[<P>--执行这个语句,就可以把当前库的所有表的所有者改为</P>
<P>dbo exec sp_msforeachtable 'sp_changeobjectowner ''?'', ''dbo''' </P>
<P>--如果是要用户表/存储过程/视图/触发器/自定义函数一齐改,则用游标(不要理会错误提示) </P>
<P>declare tb cursor local for select 'sp_changeobjectowner ''['+replace(user_name(uid),']',']]')+'].[' +replace(name,']',']]')+']'',''dbo''' from sysobjects where xtype in('U','V','P','TR','FN','IF','TF') and status&gt;=0 open tb declare @s nvarchar(4000) fetch tb into @s while @@fetch_status=0 begin exec(@s) fetch tb into @s end close tb deallocate tb </P>
<P>Go</P>]]></description>
<author>竹子</author>
<pubDate>2008-3-6 18:14:00</pubDate>
</item>

</channel>
</rss>