<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>魔法学院</title>
	<atom:link href="http://perfect99.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://perfect99.net</link>
	<description>国外主机评测、IT新闻、网站建设推广与盈利研究</description>
	<pubDate>Thu, 20 Nov 2008 08:39:07 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>WebBrowser、MSHTML在Delphi中的使用</title>
		<link>http://perfect99.net/2008/11/20/webbrowser%e3%80%81mshtml%e5%9c%a8delphi%e4%b8%ad%e7%9a%84%e4%bd%bf%e7%94%a8/</link>
		<comments>http://perfect99.net/2008/11/20/webbrowser%e3%80%81mshtml%e5%9c%a8delphi%e4%b8%ad%e7%9a%84%e4%bd%bf%e7%94%a8/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 08:39:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[delphi]]></category>

		<category><![CDATA[WebBrowser]]></category>

		<guid isPermaLink="false">http://perfect99.net/?p=163</guid>
		<description><![CDATA[由于项目需要，近来研究了一下WebBrowser组件和MSHTML 在Delphi中的使用,整理了一下这段时间研究的结果,写下来一是方便大家查阅,二也可以加深我自己的记忆.希望能对大家有所帮助… …,同时,如果有更好的处理方式或者我没有提到的问题,请大家也告诉我哦, 咱们一块进步… &#8230;,其中一部分是我从网络中搜集的资料,谢谢那些兄弟们… …
MSHTML把HTML页面中的元素封装成了IHTMLInputElement、 IHTMLInputButtonElement、IHTMLInputTextElement、IHTMLTextAreaElement、 IHTMLTitleElement、IHTMLFormElement等等组件接口。
在程序中可以通过MSHTML提供的IHTMLDocument2接口得到整个Document对象，IHTMLElementCollection接口得到所有页面元素的集合,通过该接口的Item方法可以得到具体的某个组件,然后设置和读取该组件的属性值。
下面是一些常用功能的事例代码.
1． 打开某个页面：
      web.Navigate(ExtractFilePath(Application.ExeName) + &#8216;Template/login.html&#8217;);
2． 取出页面中某个HtmlElement的Value属性值：
function GetValueByElementName(web: TWebBrowser; elementName: string; index: integer): string;
begin
    result := (((web.Document as IHTMLDocument2).body.all as
      IHTMLElementCollection).item(elementName, index) as IHTMLInputElement
    ).value
end;
3． 给HtmlElement设置Value属性
procedure SetValueTextAreaName(web: TWebBrowser; elementName, value: string;index: integer);
begin
(((web.Document as [...]]]></description>
		<wfw:commentRss>http://perfect99.net/2008/11/20/webbrowser%e3%80%81mshtml%e5%9c%a8delphi%e4%b8%ad%e7%9a%84%e4%bd%bf%e7%94%a8/feed/</wfw:commentRss>
		</item>
		<item>
		<title>用MSHTML控制网页中所有元素(delphi代码)</title>
		<link>http://perfect99.net/2008/11/20/%e7%94%a8mshtml%e6%8e%a7%e5%88%b6%e7%bd%91%e9%a1%b5%e4%b8%ad%e6%89%80%e6%9c%89%e5%85%83%e7%b4%a0delphi%e4%bb%a3%e7%a0%81/</link>
		<comments>http://perfect99.net/2008/11/20/%e7%94%a8mshtml%e6%8e%a7%e5%88%b6%e7%bd%91%e9%a1%b5%e4%b8%ad%e6%89%80%e6%9c%89%e5%85%83%e7%b4%a0delphi%e4%bb%a3%e7%a0%81/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 08:38:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[未分类]]></category>

		<category><![CDATA[delphi mshtml]]></category>

		<guid isPermaLink="false">http://perfect99.net/?p=161</guid>
		<description><![CDATA[前些日子用VS2005中的WebBrowser来控制网页中的元素，虽然VS2005封装了很多不错的功能，但用起来总觉得有所欠缺。比如我想如得到框架页内网页的源码，找来的去，就是找不到合适的方法。
        MSHTML是微软公司的一个COM组件，该组件封装了HTML语言中的所有元素及其属性，通过其提供的标准接口，可以访问指定网页的所有元素．MSHTML对象模型是由一些对象和集合组成的．处于根部的是HTML，描述了打开页面的1个窗口，包括一系列集合和对象。如Frames集合，History，Location，Navigator，Document，Vi—sum，Event对象等．其中描述呈现在客户窗口实际网页的是 Document对象。由一系列的属性、方法、对象和集合组成．其中All集合中包含网页中所有标记(Tag)元素，其主要的方法和属性有：
　　(1)Length(长度)：即标记出现的个数，可以把标记的集合理解为从0开始的一维数组，其次序按照标记在网页位置排列；
　　(2)Tags(标记)：用于过滤出给定标记的集合，如Doc．Al1．Tags(P)得到所有分段标记P；
　　(3)Item(项目)：用于选择集合中的某1个元素，如object．item(0)得到集合的第1个元素，而object．item(i)得到第i+1个元素．
此外，IHTMLElement也是个常用的集合对象，代表网页中指定标记的集合，通过这个集合对象，可以得到网页上特定标记的内容．IHTMLElement有4个主要属性：
　　(1)InnerText：开始标记和结束标记之间的文本；
　　(2)InnerHTML：开始标记和结束标记之间的文本和HTML；
　　(3)OuterText：对象的文本；
　　(4)OuterHTML：对象的文本和HTML．
自动提交
procedure TForm1.Button1Click(Sender: TObject);
            var
            Doc:IHTMLDocument2;
            input:OleVariant;
        [...]]]></description>
		<wfw:commentRss>http://perfect99.net/2008/11/20/%e7%94%a8mshtml%e6%8e%a7%e5%88%b6%e7%bd%91%e9%a1%b5%e4%b8%ad%e6%89%80%e6%9c%89%e5%85%83%e7%b4%a0delphi%e4%bb%a3%e7%a0%81/feed/</wfw:commentRss>
		</item>
		<item>
		<title>TWebBrowser的命令操作</title>
		<link>http://perfect99.net/2008/11/20/twebbrowser-command/</link>
		<comments>http://perfect99.net/2008/11/20/twebbrowser-command/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 08:10:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[delphi]]></category>

		<category><![CDATA[TWebBrowser]]></category>

		<category><![CDATA[TWebBrowser delphi]]></category>

		<guid isPermaLink="false">http://perfect99.net/?p=158</guid>
		<description><![CDATA[常用的命令操作用ExecWB方法即可完成，ExecWB同样多次被重载：
　　procedure ExecWB(cmdID: OLECMDID; cmdexecopt: OLECMDEXECOPT); overload;
　　procedure ExecWB(cmdID: OLECMDID; cmdexecopt: OLECMDEXECOPT; var pvaIn: OleVariant); overload;
　　procedure ExecWB(cmdID: rOLECMDID; cmdexecopt: OLECMDEXECOPT; var pvaIn: OleVariant; var pvaOut: OleVariant); overload;
　　打开：　弹出“打开Internet地址”对话框，CommandID为OLECMDID_OPEN（若浏览器版本为IE5.0，
　　　　　　则此命令不可用）。
　　另存为：调用“另存为”对话框。
　　　　　　ExecWB(OLECMDID_SAVEAS,OLECMDEXECOPT_DODEFAULT, EmptyParam, EmptyParam);
　　打印、打印预览和页面设置：　调用“打印”、“打印预览”和“页面设置”对话框（IE5.5及以上版本才支持打
　　　　　　　　　　　　　　　　印预览，故实现应该检查此命令是否可用）。
　　　　　　ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DODEFAULT, EmptyParam, EmptyParam);
　　　　　　if QueryStatusWB(OLECMDID_PRINTPREVIEW)=3 then
　　　　　　　ExecWB(OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_DODEFAULT, EmptyParam,EmptyParam);
　　　　　　ExecWB(OLECMDID_PAGESETUP, OLECMDEXECOPT_DODEFAULT, EmptyParam, EmptyParam);
　　剪切、复制、粘贴、全选：　功能无须多说，需要注意的是：剪切和粘贴不仅对编辑框文字，而且对网页上的非编辑框文字同样有效，用得好的话，也许可以做出功能特殊的东东。获得其命令使能状态和执行命令的方法有两种（以复制为例，剪切、粘贴和全选分别将各自的关键字替换即可，分别为CUT,PASTE和SELECTALL）：
　　　A、用TWebBrowser的QueryStatusWB方法。
　　　　　if(QueryStatusWB(OLECMDID_COPY)=OLECMDF_ENABLED) or
　　　　　　OLECMDF_SUPPORTED) then
　　　　　　ExecWB(OLECMDID_COPY, OLECMDEXECOPT_DODEFAULT, EmptyParam, EmptyParam);
　　　B、用IHTMLDocument2的QueryCommandEnabled方法。
　　　　　var
　　　　　　Doc: IHTMLDocument2;
　　　　　begin
　　　　　　Doc :=WebBrowser1.Document as IHTMLDocument2;
　　　　　　if Doc.QueryCommandEnabled(&#8217;Copy&#8217;) then
　　　　　　　Doc.ExecCommand(&#8217;Copy&#8217;,false,EmptyParam);
　　　　　end;
]]></description>
		<wfw:commentRss>http://perfect99.net/2008/11/20/twebbrowser-command/feed/</wfw:commentRss>
		</item>
		<item>
		<title>美国主机Luarpages推出最大优惠政策$4.95/月</title>
		<link>http://perfect99.net/2008/09/14/luarpages-conpon/</link>
		<comments>http://perfect99.net/2008/09/14/luarpages-conpon/#comments</comments>
		<pubDate>Sun, 14 Sep 2008 03:52:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Luarpages]]></category>

		<category><![CDATA[美国主机]]></category>

		<category><![CDATA[Luarpages优惠]]></category>

		<guid isPermaLink="false">http://perfect99.net/?p=155</guid>
		<description><![CDATA[今日起，Lunarpages主机推出了目前最优惠的优惠政策。凡是购买 Basic 方案 1年或者2年的朋友，都可以享受每月$4.95美金的 极低价格。
优惠时间不明，随时可能过期。优惠期间，在购买basic方案时 所有的优惠码都失效。
1年BASIC的价格：$4.95*12=$59.4
2年BASIC的价格：$4.95*24=$118.8
1年BASIC带IP的价格：$4.95*12=$59.4 + $35.4  = $94.8
2年BASIC带IP的价格：$4.95*24=$118.8 + $70.8 = $189.6 
独立IP价格不变，依旧是2.95美金一个月。
LP basic 方案主要参数
空间大小：无限
月流量：无限
可建站点：无限
网站地址：www.lunarpages.com
]]></description>
		<wfw:commentRss>http://perfect99.net/2008/09/14/luarpages-conpon/feed/</wfw:commentRss>
		</item>
		<item>
		<title>国外主机如何设定404 Error错误页</title>
		<link>http://perfect99.net/2008/09/14/set-error-pag/</link>
		<comments>http://perfect99.net/2008/09/14/set-error-pag/#comments</comments>
		<pubDate>Sun, 14 Sep 2008 03:23:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[美国主机]]></category>

		<category><![CDATA[404 Error错误页]]></category>

		<category><![CDATA[国外主机]]></category>

		<guid isPermaLink="false">http://perfect99.net/?p=153</guid>
		<description><![CDATA[1、首先登录CPanel控制面板，点选 “Error Pages”
2、然后选择你要设定的 Error Page,通常有一下几种情况：
400 (Bad request)//请求出错
401 (Authorization required)//未授权
403 (Forbidden)//拒绝访问
404 (Wrong page)//请求页面错误
500 (Internal server error)//服务器内部错误
3、输入你的404 Error Page HTML网页（里面可以随意设置你要的MIME类型），然后点选“Save”，这样就完成了404 Error错误页面了。
]]></description>
		<wfw:commentRss>http://perfect99.net/2008/09/14/set-error-pag/feed/</wfw:commentRss>
		</item>
		<item>
		<title>怎样在同一个空间安装多个WORDPRESS</title>
		<link>http://perfect99.net/2008/09/02/how-to-setup-wp/</link>
		<comments>http://perfect99.net/2008/09/02/how-to-setup-wp/#comments</comments>
		<pubDate>Tue, 02 Sep 2008 04:51:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://perfect99.net/?p=150</guid>
		<description><![CDATA[首先打开WORDPRESS配置文件wp-config.php
找到
$table_prefix  = 'wp_';   // Only numbers, letters, and underscores please!
$table_prefix表示数据库表前缀
把他的值改成&#8217;wp1_&#8217;即可 如果需要安装多个 则‘wp2_’ ‘wp3_’以此类推即可。
]]></description>
		<wfw:commentRss>http://perfect99.net/2008/09/02/how-to-setup-wp/feed/</wfw:commentRss>
		</item>
		<item>
		<title>几个做竞价的工具</title>
		<link>http://perfect99.net/2008/09/01/about-compete/</link>
		<comments>http://perfect99.net/2008/09/01/about-compete/#comments</comments>
		<pubDate>Sun, 31 Aug 2008 16:02:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[技术资料]]></category>

		<category><![CDATA[Compete]]></category>

		<category><![CDATA[Compete Pro]]></category>

		<category><![CDATA[Keyword Tool]]></category>

		<guid isPermaLink="false">http://perfect99.net/?p=148</guid>
		<description><![CDATA[Keyword Tool：
http://www.wordpot.com/Default.aspx
Compete Pro:
http://www.Compete.com/
This new offering provides the foundation for smarter online marketing and business decisions through exclusive access to online audience measurement, search marketing and historical web traffic metrics for any domain.
]]></description>
		<wfw:commentRss>http://perfect99.net/2008/09/01/about-compete/feed/</wfw:commentRss>
		</item>
		<item>
		<title>TPerlRegEx安装方法</title>
		<link>http://perfect99.net/2008/08/30/install-tperlrege/</link>
		<comments>http://perfect99.net/2008/08/30/install-tperlrege/#comments</comments>
		<pubDate>Sat, 30 Aug 2008 12:42:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[delphi]]></category>

		<category><![CDATA[TPerlRegEx]]></category>

		<guid isPermaLink="false">http://perfect99.net/?p=146</guid>
		<description><![CDATA[TPerlRegEx下载地址：
官方网站: http://www.regular-e­xpressions.info/delphi.html
直接下载: http://www.regular-e­xpressions.info/download/TPerlRegEx.zip
解压打开 PerlRegExD2006.dpk, 提示缺少资源文件, 没关系;同理你的delphi是7.0就打开PerlRegExD7.dpk；
    在 Project Manager 窗口中的 PerlRegExD2006.bpl 上点击右键, 执行 Install;
    这时在 Tool Palette 的列表中已经有了 TPerlRegEx, 在 JGsoft 组.
Tools -> Options -> Environment Options -> Delphi Options -> Library-Win32 -> Library path ->
    添加路径: &#8230;\Imports\TPerlRegEx
可以使用了! 直接 uses PerlRegEx 或从 Tool Palette 添加都可以. 
]]></description>
		<wfw:commentRss>http://perfect99.net/2008/08/30/install-tperlrege/feed/</wfw:commentRss>
		</item>
		<item>
		<title>淘宝网发现的港台版iPhone 8G手机</title>
		<link>http://perfect99.net/2008/08/29/taobao-iphone/</link>
		<comments>http://perfect99.net/2008/08/29/taobao-iphone/#comments</comments>
		<pubDate>Fri, 29 Aug 2008 05:33:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[心情故事]]></category>

		<category><![CDATA[iPhone 8G]]></category>

		<guid isPermaLink="false">http://perfect99.net/?p=143</guid>
		<description><![CDATA[和很多网友一样我也是淘宝的忠实用户没事就上去看有什么好东西.

http://auction1.taobao.com/auction/item_detail&#8211;.jhtml?taomi=8aR2LQR6GJA9N9Z2%2FTDZyN8%3D&#038;direct=1
这款型售出的全国联保平均价格3955元 此卖家卖1600元 不知道质量怎么样
]]></description>
		<wfw:commentRss>http://perfect99.net/2008/08/29/taobao-iphone/feed/</wfw:commentRss>
		</item>
		<item>
		<title>几个你应该知道的广告术语</title>
		<link>http://perfect99.net/2008/08/29/ad-word/</link>
		<comments>http://perfect99.net/2008/08/29/ad-word/#comments</comments>
		<pubDate>Fri, 29 Aug 2008 05:17:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[技术资料]]></category>

		<category><![CDATA[CPC]]></category>

		<category><![CDATA[CPM]]></category>

		<category><![CDATA[广告术语]]></category>

		<guid isPermaLink="false">http://perfect99.net/?p=141</guid>
		<description><![CDATA[CPC (Cost-per-click)：每次点击费用，关键字广告每次点击所需支付的费用。
CPM（Cost per Thousand Impressions）：每千次印象费用，广告每显示1000次所需支付的费用。在adwords 中CPM出价在以展示位置定位广告（即原以网站定位广告）中体现。
质量得分：由关键字在Google搜索广告上的点击率（CTR）、关键字与广告文字/广告组的相关性、目标网页的质量及其他相关因素决定，是评估关键字质量高低，影响关键字最低出价和排名的重要因素之一；
最低出价：广告正常触发所需支付的最低价格，与拍卖行为中的起价性质相同，最低出价由该关键字质量得分决定，质量得分越高起价则越低，反之。
内容出价：仅适用于内容相关广告设定的最高每次点击价格。
最高每次点击价格：您愿意为 AdWords 广告每次点击所支付的最高金额，等同于帐户中的关键字出价。
最高每千次展示价格：您愿意为adwords按展示次数收费的广告每千次展示所支付的最高金额。
展示次数：广告所在的网页被打开一次即可理解为展示一次，这其中不会确认浏览者是否浏览了该广告以及点击该广告。
点击率 (CTR)：广告被点击的频率，即广告点击次数（不同于独立IP）/展示次数x 100，一般情况下，点击率可作为评估广告质量的指标之一，点击率越高证明广告的相关性越大，同时广告的质量得分也会随之增长。
Google 搜索广告：出现在Google搜索页面左上或右侧的文字广告，标志性文字：“赞助商链接＂。
搜索网络广告：出现在与Google建立合作伙伴关系的搜索引擎（如AOL、SOSO）以及可显示搜索结果页的资源上，标志性文字“赞助商链接＂。
Google 内容相关广告：出现在google adsense广告联盟网站上的广告，标志性文字“google提供的广告＂。
以关键字定位广告：以关键字为定位方式的Google广告，Google系统通过分析广告关键字列表与键入搜索框关键字或网页主要内容的相关度来匹配广告。
以展示位置定位广告：以网站或某个具体网页展示位置为定位方式的Google广告，即您可自行选择某个网站或广告位投放广告，但前提是此网站已加入了Google 内容网站联盟。
排名首选项：adwords广告在广告展示位置中期望获得的排名。如你设置的排名首选项为3，AdWords 系统会尽可能在您的广告排名为第三时展示广告，其他排位时则避免展示，而并非意味着广告始终展示在指定的排名。
目标网址：用户点击广告后进入的网址。
显示网址：显示在文字广告最后一行或者图片/视频广告下方的网址。
更多的名词解释http://adwords.google.com/support/bin/topic.py?topic=29&#38;ctx=rhsmodule
http://www.google.com/intl/zh-CN/adwords/learningcenter/
]]></description>
		<wfw:commentRss>http://perfect99.net/2008/08/29/ad-word/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
