<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="lyceum/1.0.3" -->
<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>tech</title>
	<link>http://tech.blogwoo.com</link>
	<description>收藏工作学习中积累的一些技术信息</description>
	<pubDate>Sat, 15 Nov 2008 14:59:34 +0000</pubDate>
	<generator>http://lyceum.ibiblio.org/?v=1.0.3</generator>
	<language>en</language>
			<item>
		<title>DOTNETSCORM+SQL2005+VS2005</title>
		<link>http://tech.blogwoo.com/archives/950.html</link>
		<comments>http://tech.blogwoo.com/archives/950.html#comments</comments>
		<pubDate>Fri, 14 Nov 2008 02:45:44 +0000</pubDate>
		<dc:creator>sumnny</dc:creator>
		
		<category>vs</category>

		<guid isPermaLink="false">http://tech.blogwoo.com/archives/950.html</guid>
		<description><![CDATA[折腾DOTNETSCORM，在VS2005调试的时候遇到下面的错误
在建立与服务器的连接时出错。在连接到 SQL Server 2005 时，在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)
第一步：开始-&#62;&#62;SQLServer2005-&#62;&#62;配置工具-&#62;&#62;SQLServer外围应用配置器-&#62;&#62;服务和外围连接的应用配置器-&#62;&#62;点击&#8221;远程连接&#8221;-&#62;&#62;本地连接和远程连接-&#62;&#62;同时使用TCP/IP和named Pipes-&#62;&#62;点&#8221;确定&#8221;-&#62;&#62;重启SQLserver服务
第二步：打开IIS属性－》站点属性－》选Net 2.0－》点‘编辑全局配置’－》删除所有连接SQlexpress的项
项目使用了roleManager和webPart，开始machine.config会报错，需要自定义。在system.web下增加
&#60;roleManager enabled=&#8221;true&#8221; cacheRolesInCookie=&#8221;true&#8221;&#62;
    &#60;providers&#62;
     &#60;clear/&#62;
     &#60;add connectionStringName=&#8221;DotNetSCORMDB&#8221; applicationName=&#8221;/&#8221; name=&#8221;AspNetSqlRoleProvider&#8221; type=&#8221;System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&#8221;/&#62;
    &#60;/providers&#62;
   &#60;/roleManager&#62;
&#60;webParts&#62;
    &#60;personalization&#62;
  [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://www.dotnetscorm.com/Portals/0/dns_logo.jpg" alt="" width="304" height="81" />折腾DOTNETSCORM，在VS2005调试的时候遇到下面的错误</p>
<p style="padding-left: 30px;">在建立与服务器的连接时出错。在连接到 SQL Server 2005 时，在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)</p>
<p>第一步：开始-&gt;&gt;SQLServer2005-&gt;&gt;配置工具-&gt;&gt;SQLServer外围应用配置器-&gt;&gt;服务和外围连接的应用配置器-&gt;&gt;点击&#8221;远程连接&#8221;-&gt;&gt;本地连接和远程连接-&gt;&gt;同时使用TCP/IP和named Pipes-&gt;&gt;点&#8221;确定&#8221;-&gt;&gt;重启SQLserver服务</p>
<p>第二步：打开IIS属性－》站点属性－》选Net 2.0－》点‘编辑全局配置’－》删除所有连接SQlexpress的项</p>
<p>项目使用了roleManager和webPart，开始machine.config会报错，需要自定义。在system.web下增加</p>
<p style="padding-left: 30px;">&lt;roleManager enabled=&#8221;true&#8221; cacheRolesInCookie=&#8221;true&#8221;&gt;<br />
    &lt;providers&gt;<br />
     &lt;clear/&gt;<br />
     &lt;add connectionStringName=&#8221;DotNetSCORMDB&#8221; applicationName=&#8221;/&#8221; name=&#8221;AspNetSqlRoleProvider&#8221; type=&#8221;System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&#8221;/&gt;<br />
    &lt;/providers&gt;<br />
   &lt;/roleManager&gt;</p>
<p style="padding-left: 30px;">&lt;webParts&gt;<br />
    &lt;personalization&gt;<br />
     &lt;providers&gt;<br />
      &lt;clear/&gt;<br />
      &lt;add connectionStringName=&#8221;DotNetSCORMDB&#8221; applicationName=&#8221;/&#8221; name=&#8221;AspNetSqlPersonalizationProvider&#8221; type=&#8221;System.Web.UI.WebControls.WebParts.SqlPersonalizationProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&#8221; /&gt;<br />
     &lt;/providers&gt;<br />
    &lt;/personalization&gt;<br />
   &lt;/webParts&gt;</p>
<p>如果没有applicationName=&#8221;/&#8221;，系统会报错</p>
<p style="padding-left: 30px;">要求一个与架构版本“1”兼容的数据库架构。但是，当前的数据库架构与此版本不兼容。您可能需要使用 aspnet_regsql.exe (在 framework 安装目录中提供)安装一个兼容的架构，或者将提供程序升级到一个较新的版本。</p>
<p>找到aspnet_regsql.exe，把应用程序配置指定到sql2005即可。</p>
<p>项目似乎缺少一个UploadContent.ascx文件，创建一个空的替代。折腾了两天，才把DOTNETSCORM跑起来，看到她的样子。。。
</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.blogwoo.com/archives/950.html/feed/</wfw:commentRss>
		</item>
		<item>
		<title>xp远程桌面如何重启电脑？</title>
		<link>http://tech.blogwoo.com/archives/880.html</link>
		<comments>http://tech.blogwoo.com/archives/880.html#comments</comments>
		<pubDate>Thu, 12 Jun 2008 14:21:10 +0000</pubDate>
		<dc:creator>sumnny</dc:creator>
		
		<category>Uncategorized</category>

		<guid isPermaLink="false">http://tech.blogwoo.com/archives/880.html</guid>
		<description><![CDATA[我通过远程桌面连接到另外一台做服务器的机器上。有时想重启电脑，但是发现开始菜单中无重启和关机的选项，只有注销和断开的选项？那如何重启电脑呢？
有两种方法：
1、在工具条上点鼠标右键，弹出菜单里选择【任务管理器】，接下来点菜单中的“关机”，你会发现在这个选项中有“重新启动”和“关闭”选项，对应的是将系统重启和关闭远程计算机。我们可以根据需要进行操作即可。
2、也可以使用DOS命令来重启机器或关机，通过XP系统自带的shutdown来完成即可。shutdown.exe是XP系统自带的管理重启注销关闭计算机的小工具。shutdown -l是注销，shutdown -r是重启。

]]></description>
			<content:encoded><![CDATA[<p>我通过远程桌面连接到另外一台做服务器的机器上。有时想重启电脑，但是发现开始菜单中无重启和关机的选项，只有注销和断开的选项？那如何重启电脑呢？<br />
有两种方法：<br />
1、在工具条上点鼠标右键，弹出菜单里选择【任务管理器】，接下来点菜单中的“关机”，你会发现在这个选项中有“重新启动”和“关闭”选项，对应的是将系统重启和关闭远程计算机。我们可以根据需要进行操作即可。<br />
2、也可以使用DOS命令来重启机器或关机，通过XP系统自带的shutdown来完成即可。shutdown.exe是XP系统自带的管理重启注销关闭计算机的小工具。shutdown -l是注销，shutdown -r是重启。
</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.blogwoo.com/archives/880.html/feed/</wfw:commentRss>
		</item>
		<item>
		<title>flvplayback视频</title>
		<link>http://tech.blogwoo.com/archives/809.html</link>
		<comments>http://tech.blogwoo.com/archives/809.html#comments</comments>
		<pubDate>Fri, 28 Mar 2008 06:41:48 +0000</pubDate>
		<dc:creator>sumnny</dc:creator>
		
		<category>Uncategorized</category>

		<guid isPermaLink="false">http://tech.blogwoo.com/archives/809.html</guid>
		<description><![CDATA[最近跟flash视频干上了。
先是有个三分屏的项目，原先使用串流大师做出来的东西觉得太老土，所以我们想做一个改进，全部flash话:)遇到的一个问题就是视频如何处理。
原来主要是javascript来控制wmv的播放及同步。但flash不支持wmv格式。为此不得不把视频切割后转成flv格式的。然后再结合已有的框架功能做到可以拖动，跳转。
还有个项目使用了大量的视频。开始是想用flvplayback来做的，但是发觉网上用的最多的contentPath不能实现视频的跳转，不知道是我的方法的问题还是怎么。后来用NetConnection+NetStream临时做了个demo给客户。今天正式做的时候还是用flvplayback来实现了，不知道哪天怎么搞的。
还在这发现了个可以提高flv视频质量的方法：
MovieClip(FLVPlayer.getVideoPlayer(FLVPlayer.activ eVideoPlayerIndex))._video.smoothing = true;
FLVPlayer是flvplayback的id。
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;
觉得flash设计的好完全可以做到以前direct达到的效果。
最近有个光盘项目，需要实现查询功能。而flash是不支持数据库的，指的是在光盘上直接运行，客户的要求。所以不可能使用C/S架构来做。最后还是使用flash+xml实现了查询功能。

]]></description>
			<content:encoded><![CDATA[<p>最近跟flash视频干上了。</p>
<p>先是有个三分屏的项目，原先使用串流大师做出来的东西觉得太老土，所以我们想做一个改进，全部flash话:)遇到的一个问题就是视频如何处理。</p>
<p>原来主要是javascript来控制wmv的播放及同步。但flash不支持wmv格式。为此不得不把视频切割后转成flv格式的。然后再结合已有的框架功能做到可以拖动，跳转。</p>
<p>还有个项目使用了大量的视频。开始是想用flvplayback来做的，但是发觉网上用的最多的contentPath不能实现视频的跳转，不知道是我的方法的问题还是怎么。后来用NetConnection+NetStream临时做了个demo给客户。今天正式做的时候还是用flvplayback来实现了，不知道哪天怎么搞的。</p>
<p>还<a href="http://board.flashkit.com/board/archive/index.php/t-720575.html" target="_blank">在这</a>发现了个可以提高flv视频质量的方法：</p>
<p>MovieClip(FLVPlayer.getVideoPlayer(FLVPlayer.activ eVideoPlayerIndex))._video.smoothing = true;</p>
<p>FLVPlayer是flvplayback的id。</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>觉得flash设计的好完全可以做到以前direct达到的效果。</p>
<p>最近有个光盘项目，需要实现查询功能。而flash是不支持数据库的，指的是在光盘上直接运行，客户的要求。所以不可能使用C/S架构来做。最后还是使用flash+xml实现了查询功能。
</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.blogwoo.com/archives/809.html/feed/</wfw:commentRss>
		</item>
		<item>
		<title>flv 判断播放完毕</title>
		<link>http://tech.blogwoo.com/archives/798.html</link>
		<comments>http://tech.blogwoo.com/archives/798.html#comments</comments>
		<pubDate>Tue, 04 Mar 2008 13:54:13 +0000</pubDate>
		<dc:creator>sumnny</dc:creator>
		
		<category>Uncategorized</category>

		<guid isPermaLink="false">http://tech.blogwoo.com/archives/798.html</guid>
		<description><![CDATA[
ActionScript Code:


var listenerObject:Object = new Object;
listenerObject.complete = function(eventObject:Object):Void {
&#160; &#160; 
// 在此插入事件处理代码
&#125;;
my_FLVplybk.addEventListener(&#34;complete&#34;, listenerObject);//舞台上的 FLVPlayback   组件具有实例名称 my_FLVPlybk





搜到这篇文章《一个AS菜鸟大战一个AS菜鸟问题的全过程》解决的，看得我笑死了，其实比他好不到哪里去，幸好还有GG。还好最近在看flash的帮助，否则连解答也看不懂了。

]]></description>
			<content:encoded><![CDATA[<div style="margin:20px; margin-top:5px">
<div class="smallfont" style="margin-bottom:2px">ActionScript Code:</div>
<pre class="alt2" style="margin:0px; padding:6px; border:1px inset; width:100%; height:212px; overflow:auto">
<div dir="ltr" style="text-align:left;">
<div class="actionscript"><span style="color: #993300;">var</span> listenerObject:<span style="color: #993300;">Object</span> = new <span style="color: #993300;">Object</span><span style="color: #000000;">;
</span>listenerObject.<span style="color: #993300;">complete</span> = <span style="color: #993300;">function</span>(eventObject:Object):Void {
&nbsp; &nbsp; <span style="color: #F000F0; font-style: italic;">
// 在此插入事件处理代码</span>
<span style="color: #000000;">&#125;</span>;
my_FLVplybk.addEventListener(&quot;complete&quot;, listenerObject);<span style="color: #F000F0; font-style: italic;">//舞台上的 FLVPlayback   组件具有实例名称 my_FLVPlybk</span>
<span style="color: #F000F0; font-style: italic;"></span>
<span style="color: #993300;"></span></div>
</div>
</pre>
</div>
<p>搜到这篇文章《<a href="http://file.flashempire.com/showthread.php?t=263164">一个AS菜鸟大战一个AS菜鸟问题的全过程</a>》解决的，看得我笑死了，其实比他好不到哪里去，幸好还有GG。还好最近在看flash的帮助，否则连解答也看不懂了。
</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.blogwoo.com/archives/798.html/feed/</wfw:commentRss>
		</item>
		<item>
		<title>FLVPlayback 外观 SWF 必须位于与 HTML 文件相同的目录中</title>
		<link>http://tech.blogwoo.com/archives/797.html</link>
		<comments>http://tech.blogwoo.com/archives/797.html#comments</comments>
		<pubDate>Tue, 04 Mar 2008 12:36:09 +0000</pubDate>
		<dc:creator>sumnny</dc:creator>
		
		<category>Uncategorized</category>

		<guid isPermaLink="false">http://tech.blogwoo.com/archives/797.html</guid>
		<description><![CDATA[flash中需要loadmovie一段带flv视频的swf文件，但是问题是单独看带flv的swf是好的，一loadmovie之后就不出来。
心想不会是loadmovie跟flv有冲突吧。
去google loadmovie+FLVPlayback就发现了这篇文章，FLVPlayback 外观 SWF 必须位于与 HTML 文件相同的目录中，原因在 Flash 8 中, 通常将 FLVPlayback 组件的外观 SWF 放在与包含该组件的 SWF 相同的服务器目录中（或该目录的子目录中）。
但是, 在加载 情况中, FLVPlayback 组件的外观 SWF 的位置必须相对于服务器上包含父 SWF 的 HTML 加载 文件, 而不是 相对于被加载的 SWF 的位置。否则, FLVPlayback 组件无法显示。
但是把FLVPlayback 组件的外观 SWF 文件放到根目录下也还是不能正常播放啊。
最后才发现原来是FLVPlayback组件的路径问题。调用flv的不是被loadmovie的swf，而是loadmovie的swf。
晕。

]]></description>
			<content:encoded><![CDATA[<p>flash中需要loadmovie一段带flv视频的swf文件，但是问题是单独看带flv的swf是好的，一loadmovie之后就不出来。<br />
心想不会是loadmovie跟flv有冲突吧。<br />
去google loadmovie+FLVPlayback就发现了这篇文章，<a href="http://www.adobe.com/cn/support/flash/ts/documents/608abffd.htm">FLVPlayback 外观 SWF 必须位于与 HTML 文件相同的目录中</a>，原因在 Flash 8 中, 通常将 FLVPlayback 组件的外观 SWF 放在与包含该组件的 SWF 相同的服务器目录中（或该目录的子目录中）。</p>
<p>但是, 在加载 情况中, FLVPlayback 组件的外观 SWF 的位置必须相对于服务器上包含父 SWF 的 HTML 加载 文件, 而不是 相对于被加载的 SWF 的位置。否则, FLVPlayback 组件无法显示。</p>
<p>但是把FLVPlayback 组件的外观 SWF 文件放到根目录下也还是不能正常播放啊。<br />
最后才发现原来是FLVPlayback组件的路径问题。调用flv的不是被loadmovie的swf，而是loadmovie的swf。<br />
晕。
</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.blogwoo.com/archives/797.html/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Assigning code to buttons made with duplicateMovieClip</title>
		<link>http://tech.blogwoo.com/archives/790.html</link>
		<comments>http://tech.blogwoo.com/archives/790.html#comments</comments>
		<pubDate>Thu, 21 Feb 2008 12:04:49 +0000</pubDate>
		<dc:creator>sumnny</dc:creator>
		
		<category>flash</category>

		<guid isPermaLink="false">http://tech.blogwoo.com/archives/790.html</guid>
		<description><![CDATA[
ActionScript Code:


var thisHex:MovieClip = myMc.duplicateMovieClip&#40;&#8220;hex&#8221;+nr, nr&#41;;
thisHex._x += 50;
thisHex.onRelease = function&#40;&#41; &#123;
&#160; &#160; //Whatever
&#125;;
//Or loop through after thier creation:
for &#40;i=0; i&#60;nr; i++&#41; &#123;
&#160; &#160; this&#91;&#8220;hex&#8221;+i&#93;.onRelease = function&#40;&#41; &#123;
&#160; &#160; &#160; &#160; //Whatever
&#160; &#160; &#125;;
&#125;



http://www.actionscript.org/forums/showthread.php3?t=158856
http://www.adobekit.com.cn/forum/showtopic-109.aspx这篇文章很多错误，误导人！
幸亏找到了这一篇http://bbs.huoren.cn/viewthread.php?tid=3018
又是同样的教训，button和movieclip的事件是不同的！！！

]]></description>
			<content:encoded><![CDATA[<div style="margin:20px; margin-top:5px">
<div class="smallfont" style="margin-bottom:2px">ActionScript Code:</div>
<pre class="alt2" style="margin:0px; padding:6px; border:1px inset; width:100%; height:212px; overflow:auto">
<div dir="ltr" style="text-align:left;">
<div class="actionscript"><span style="color: #993300;">var</span> thisHex:<span style="color: #993300;">MovieClip</span> = myMc.<span style="color: #993300;">duplicateMovieClip</span><span style="color: #000000;">&#40;</span><span style="color: #0000FF;">&#8220;hex&#8221;</span>+nr, nr<span style="color: #000000;">&#41;</span>;
thisHex.<span style="color: #993300;">_x</span> += <span style="color: #000000;">50</span>;
thisHex.<span style="color: #993300;">onRelease</span> = <span style="color: #993300;">function</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
&nbsp; &nbsp; <span style="color: #F000F0; font-style: italic;">//Whatever</span>
<span style="color: #000000;">&#125;</span>;
<span style="color: #F000F0; font-style: italic;">//Or loop through after thier creation:</span>
<span style="color: #993300;">for</span> <span style="color: #000000;">&#40;</span>i=<span style="color: #000000;">0</span>; i&lt;nr; i++<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
&nbsp; &nbsp; <span style="color: #993300;">this</span><span style="color: #000000;">&#91;</span><span style="color: #0000FF;">&#8220;hex&#8221;</span>+i<span style="color: #000000;">&#93;</span>.<span style="color: #993300;">onRelease</span> = <span style="color: #993300;">function</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #F000F0; font-style: italic;">//Whatever</span>
&nbsp; &nbsp; <span style="color: #000000;">&#125;</span>;
<span style="color: #000000;">&#125;</span></div>
</div>
</pre>
</div>
<p>http://www.actionscript.org/forums/showthread.php3?t=158856<br />
<a href="http://www.adobekit.com.cn/forum/showtopic-109.aspx">http://www.adobekit.com.cn/forum/showtopic-109.aspx</a>这篇文章很多错误，误导人！<br />
幸亏找到了这一篇<a href="http://bbs.huoren.cn/viewthread.php?tid=3018">http://bbs.huoren.cn/viewthread.php?tid=3018</a><br />
又是同样的教训，button和movieclip的事件是不同的！！！
</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.blogwoo.com/archives/790.html/feed/</wfw:commentRss>
		</item>
		<item>
		<title>提高</title>
		<link>http://tech.blogwoo.com/archives/789.html</link>
		<comments>http://tech.blogwoo.com/archives/789.html#comments</comments>
		<pubDate>Thu, 21 Feb 2008 12:02:23 +0000</pubDate>
		<dc:creator>sumnny</dc:creator>
		
		<category>flash</category>

		<guid isPermaLink="false">http://tech.blogwoo.com/archives/789.html</guid>
		<description><![CDATA[自己属于那种需要人在后面拿着鞭子赶的老牛啊！
show show刚做的一个网站，自认为是自己做的最复杂的asp程序了，设计是朋友做的
http://www.hutchin.com/index.asp
里面的动态目录差点没把自己做死！！！
最近在做一个flash查询的项目，在网上似乎找不到查询方面的文章，难道没有用flash做查询么？就因为所以的数据库的工作都要自己来做？*^-^*

]]></description>
			<content:encoded><![CDATA[<p>自己属于那种需要人在后面拿着鞭子赶的老牛啊！<br />
show show刚做的一个网站，自认为是自己做的最复杂的asp程序了，设计是朋友做的<br />
<a href="http://www.hutchin.com/New.asp">http://www.hutchin.com/index.asp</a><br />
里面的动态目录差点没把自己做死！！！</p>
<p>最近在做一个flash查询的项目，在网上似乎找不到查询方面的文章，难道没有用flash做查询么？就因为所以的数据库的工作都要自己来做？*^-^*
</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.blogwoo.com/archives/789.html/feed/</wfw:commentRss>
		</item>
		<item>
		<title>vb获得本地和远程的MAC地址 (网卡地址)</title>
		<link>http://tech.blogwoo.com/archives/767.html</link>
		<comments>http://tech.blogwoo.com/archives/767.html#comments</comments>
		<pubDate>Thu, 10 Jan 2008 10:08:36 +0000</pubDate>
		<dc:creator>sumnny</dc:creator>
		
		<category>Uncategorized</category>

		<guid isPermaLink="false">http://tech.blogwoo.com/archives/767.html</guid>
		<description><![CDATA[&#8216;原创: CSDN 许仙; qq:19030300 主页:http://hot1kang1.126.com
&#8216;转载请保持信息的完整性 谢谢
&#8216;参考网络代码完成, 获取机器的MAC 网卡地址
&#8216;VB获取机器的硬盘物理地址和硬盘型号 http://blog.csdn.net/hot1kang1/archive/2006/03/27/639735.aspx
&#8216;&#8212;&#8212;&#8212;&#8212;&#8212;-
&#8216;GetMyMAC 获得本机器网卡 MAC地址 若无IP 返回空字符
&#8216; Print GetMyMAC
&#8216;GetRemoteMACAddress IP,strval 获取对应机器的网卡 MAC地址
&#8216;dim i
&#8216;GetRemoteMACAddress &#8220;192.168.0.1&#8243;,i
&#8216;Print i
&#8216;
&#8216;GetIPAddress  返回给定机器名的Ip地址，机器名为空时返回本机Ip地址
&#8216; GetIPAddress 机器名
&#8216;&#8212;&#8212;&#8212;&#8212;&#8212;-
Option Explicit
Private Declare Function gethostname _
               Lib &#8220;wsock32.dll&#8221; (ByVal szHost As String, _
                                  ByVal dwHostLen As Long) As Long
Private Declare Function gethostbyname _
               Lib &#8220;wsock32.dll&#8221; (ByVal szHost As String) As Long
Private Declare Function [...]]]></description>
			<content:encoded><![CDATA[<p>&#8216;原创: CSDN 许仙; qq:19030300 主页:http://hot1kang1.126.com<br />
&#8216;转载请保持信息的完整性 谢谢</p>
<p>&#8216;参考网络代码完成, 获取机器的MAC 网卡地址<br />
&#8216;VB获取机器的硬盘物理地址和硬盘型号 <a href="http://blog.csdn.net/hot1kang1/archive/2006/03/27/639735.aspx">http://blog.csdn.net/hot1kang1/archive/2006/03/27/639735.aspx</a><br />
&#8216;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
&#8216;GetMyMAC 获得本机器网卡 MAC地址 若无IP 返回空字符<br />
&#8216; Print GetMyMAC</p>
<p>&#8216;GetRemoteMACAddress IP,strval 获取对应机器的网卡 MAC地址<br />
&#8216;dim i<br />
&#8216;GetRemoteMACAddress &#8220;192.168.0.1&#8243;,i<br />
&#8216;Print i<br />
&#8216;<br />
&#8216;GetIPAddress  返回给定机器名的Ip地址，机器名为空时返回本机Ip地址<br />
&#8216; GetIPAddress 机器名<br />
&#8216;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
Option Explicit</p>
<p>Private Declare Function gethostname _<br />
               Lib &#8220;wsock32.dll&#8221; (ByVal szHost As String, _<br />
                                  ByVal dwHostLen As Long) As Long<br />
Private Declare Function gethostbyname _<br />
               Lib &#8220;wsock32.dll&#8221; (ByVal szHost As String) As Long<br />
Private Declare Function WSAStartup _<br />
               Lib &#8220;wsock32.dll&#8221; (ByVal wVersionRequired As Long, _<br />
                                  lpWSADATA As WSADATA) As Long<br />
Private Declare Function WSAGetLastError _<br />
               Lib &#8220;wsock32.dll&#8221; () As Long<br />
Private Declare Function WSACleanup _<br />
               Lib &#8220;wsock32.dll&#8221; () As Long<br />
              <br />
Private Declare Sub CopyMemory _<br />
               Lib &#8220;kernel32&#8243; _<br />
               Alias &#8220;RtlMoveMemory&#8221; (hpvDest As Any, _<br />
                                      ByVal hpvSource As Long, _<br />
                                      ByVal cbCopy As Long)<br />
&#8216;  Socket错误常数和版本常数<br />
Private Const SOCKET_ERROR As Long = -1<br />
Private Const MAX_WSADescription = 256<br />
Private Const MAX_WSASYSStatus = 128<br />
Private Const ERROR_SUCCESS As Long = 0<br />
Private Const WS_VERSION_REQD As Long = &#038;H101<br />
Private Const MIN_SOCKETS_REQD As Long = 1<br />
Private Const WS_VERSION_MAJOR As Long = WS_VERSION_REQD \ &#038;H100 And &#038;HFF&#038;<br />
Private Const WS_VERSION_MINOR As Long = WS_VERSION_REQD And &#038;HFF&#038;</p>
<p>&#8216;  存放主机信息的结构<br />
Private Type HOSTENT<br />
    hName As Long    &#8216;  主机的正式名称<br />
    hAliases As Long  &#8216;  主机别名列表<br />
    hAddrType As Integer    &#8216;  主机地址类型<br />
    hLen As Integer    &#8216;  主机地址长度<br />
    hAddrList As Long   &#8216;  主机IP地址列表<br />
End Type</p>
<p>&#8216;  存放Winsock版本等信息的结构<br />
Private Type WSADATA<br />
    wVersion As Integer<br />
    wHighVersion As Integer<br />
    szDescription(0 To MAX_WSADescription) As Byte<br />
    szSystemStatus(0 To MAX_WSASYSStatus) As Byte<br />
    wMaxSockets As Integer<br />
    wMaxUDPDG As Integer<br />
    dwVendorInfo As Long<br />
End Type</p>
<p>&#8216;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
&#8216;MAC使用的API<br />
Private Const NO_ERROR = 0<br />
Private Declare Function inet_addr _<br />
                Lib &#8220;wsock32.dll&#8221; (ByVal s As String) As Long<br />
Private Declare Function SendARP _<br />
                Lib &#8220;iphlpapi.dll&#8221; (ByVal DestIP As Long, _<br />
                                    ByVal SrcIP As Long, _<br />
                                    pMacAddr As Long, _<br />
                                    PhyAddrLen As Long) As Long</p>
<p>Private Declare Sub CopyMemory1 _<br />
                Lib &#8220;kernel32&#8243; _<br />
                Alias &#8220;RtlMoveMemory&#8221; (dst As Any, _<br />
                                       src As Any, _<br />
                                       ByVal bcount As Long)</p>
<p>&#8216;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Public Function GetMyMAC() As String<br />
    Dim sMyIP$, sMyMAC$<br />
    sMyIP$ = GetIPAddress<br />
    If sMyIP = &#8220;&#8221; Then Exit Function<br />
    GetRemoteMACAddress sMyIP$, sMyMAC$<br />
    GetMyMAC = sMyMAC$<br />
End Function</p>
<p>Private Function GetRemoteMACAddress(ByVal sRemoteIP As String, _<br />
                                     sRemoteMacAddress As String) As Boolean<br />
    Dim dwRemoteIP   As Long<br />
    Dim pMacAddr   As Long<br />
    Dim bpMacAddr()   As Byte<br />
    Dim PhyAddrLen   As Long<br />
    Dim cnt   As Long<br />
    Dim tmp   As String<br />
    &#8216;convert  the  string  IP  into<br />
    &#8216;an  unsigned  long  value  containing<br />
    &#8216;a  suitable  binary  representation<br />
    &#8216;of  the  Internet  address  given<br />
    dwRemoteIP = inet_addr(sRemoteIP)<br />
    If dwRemoteIP <> 0 Then<br />
        &#8217;set  PhyAddrLen  to  6<br />
        PhyAddrLen = 6<br />
        &#8216;retrieve  the  remote  MAC  address<br />
        If SendARP(dwRemoteIP, 0&#038;, pMacAddr, PhyAddrLen) = NO_ERROR Then<br />
            If pMacAddr <> 0 And PhyAddrLen <> 0 Then<br />
                &#8216;returned  value  is  a  long  pointer<br />
                &#8216;to  the  mac  address,  so  copy  data<br />
                &#8216;to  a  byte  array<br />
                ReDim bpMacAddr(0 To PhyAddrLen - 1)<br />
                CopyMemory1 bpMacAddr(0), pMacAddr, ByVal PhyAddrLen<br />
                &#8216;loop  through  array  to  build  string<br />
                For cnt = 0 To PhyAddrLen - 1<br />
                    If bpMacAddr(cnt) = 0 Then<br />
                        tmp = tmp &#038; &#8220;00-&#8221;<br />
                    Else<br />
                        tmp = tmp &#038; Hex$(bpMacAddr(cnt)) &#038; &#8220;-&#8221;<br />
                    End If<br />
                Next<br />
                &#8216;remove  the  trailing  dash<br />
                &#8216;added  above  and  return  True<br />
                If Len(tmp) > 0 Then<br />
                    sRemoteMacAddress = Left$(tmp, Len(tmp) - 1)<br />
                    GetRemoteMACAddress = True</p>
<p>                End If<br />
                Exit Function<br />
            Else<br />
                GetRemoteMACAddress = False<br />
            End If<br />
        Else<br />
            GetRemoteMACAddress = False<br />
        End If     &#8216;SendARP</p>
<p>    Else<br />
        GetRemoteMACAddress = False<br />
    End If     &#8216;dwRemoteIP<br />
End Function</p>
<p>&#8216;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
&#8216;  返回给定机器名的Ip地址，机器名为空时返回本机Ip地址<br />
Public Function GetIPAddress(Optional sHost As String) As String<br />
    Dim sHostName As String * 256<br />
    Dim lpHost As Long<br />
    Dim HOST As HOSTENT<br />
    Dim dwIPAddr As Long<br />
    Dim tmpIPAddr() As Byte<br />
    Dim i As Integer<br />
    Dim sIPAddr As String<br />
    Dim werr As Long</p>
<p>    &#8216;  如果无法初始化Socket则退出函数<br />
    If Not SocketsInitialize() Then<br />
        GetIPAddress = &#8220;&#8221;<br />
        Exit Function<br />
    End If</p>
<p>    &#8216;  如果未指定主机名称，则取得本地主机名称并获取其IP<br />
    If sHost = &#8220;&#8221; Then<br />
        If gethostname(sHostName, 256) = SOCKET_ERROR Then<br />
            werr = WSAGetLastError()<br />
            GetIPAddress = &#8220;&#8221;<br />
            SocketsCleanup<br />
            Exit Function<br />
        End If</p>
<p>        sHostName = Trim$(sHostName)<br />
    Else<br />
        sHostName = Trim$(sHost) &#038; Chr$(0)<br />
    End If</p>
<p>    &#8216;  获得指向主机信息结构的指针<br />
    lpHost = gethostbyname(sHostName)</p>
<p>    &#8216;  如果指针为零，则错误退出<br />
    If lpHost = 0 Then<br />
        werr = WSAGetLastError()<br />
        GetIPAddress = &#8220;&#8221;<br />
        SocketsCleanup<br />
        Exit Function<br />
    End If</p>
<p>    &#8216;  从指定内存取得数据<br />
    CopyMemory HOST, lpHost, Len(HOST)<br />
    CopyMemory dwIPAddr, HOST.hAddrList, 4</p>
<p>    &#8216;  重新动态分配变量内存<br />
    ReDim tmpIPAddr(1 To HOST.hLen)<br />
    &#8216;  将主机地址存储到tmpIPAddr中<br />
    CopyMemory tmpIPAddr(1), dwIPAddr, HOST.hLen</p>
<p>    &#8216;  获得最终的主机IP地址字符串<br />
    For i = 1 To HOST.hLen<br />
        sIPAddr = sIPAddr &#038; tmpIPAddr(i) &#038; &#8220;.&#8221;<br />
    Next</p>
<p>    &#8216;  返回<br />
    GetIPAddress = Mid$(sIPAddr, 1, Len(sIPAddr) - 1)</p>
<p>    &#8216; 释放Socket库所占用的系统资源<br />
    SocketsCleanup</p>
<p>End Function</p>
<p>&#8216;  初始化Socket<br />
Public Function SocketsInitialize(Optional sErr As String) As Boolean<br />
    Dim WSAD As WSADATA<br />
    Dim sLoByte As String<br />
    Dim sHiByte As String</p>
<p>    &#8216;  初始化Winsock DLL，并判断版本是否满足要求<br />
    If WSAStartup(WS_VERSION_REQD, WSAD) <> ERROR_SUCCESS Then<br />
        sErr = &#8220;The 32-bit Windows Socket is not responding.&#8221;<br />
        SocketsInitialize = False<br />
        Exit Function<br />
    End If</p>
<p>    &#8216;  判断是否有支持足够的Socket<br />
    If WSAD.wMaxSockets < MIN_SOCKETS_REQD Then<br />
        sErr = "This application requires a minimum of " &#038; CStr(MIN_SOCKETS_REQD) &#038; " supported sockets."<br />
        SocketsInitialize = False<br />
        Exit Function<br />
    End If</p>
<p>    '  判断Winsock的版本是否被32为Winsock支持<br />
    If LoByte(WSAD.wVersion) < WS_VERSION_MAJOR Or (LoByte(WSAD.wVersion) = WS_VERSION_MAJOR And HiByte(WSAD.wVersion) < WS_VERSION_MINOR) Then</p>
<p>        sHiByte = CStr(HiByte(WSAD.wVersion))<br />
        sLoByte = CStr(LoByte(WSAD.wVersion))</p>
<p>        sErr = "Sockets version " &#038; sLoByte &#038; "." &#038; sHiByte &#038; " is not supported by 32-bit Windows Sockets."</p>
<p>        SocketsInitialize = False<br />
        Exit Function<br />
    End If</p>
<p>    SocketsInitialize = True<br />
End Function</p>
<p>' 释放Socket库所占用的系统资源<br />
Public Sub SocketsCleanup()<br />
    If WSACleanup() <> ERROR_SUCCESS Then</p>
<p>    End If<br />
End Sub</p>
<p>&#8216;  获得一个整数的高字节位<br />
Public Function HiByte(ByVal wParam As Integer)<br />
    HiByte = wParam \ &#038;H1 And &#038;HFF&#038;<br />
End Function</p>
<p>&#8216;  获得一个整数的低字节位<br />
Public Function LoByte(ByVal wParam As Integer)<br />
    LoByte = wParam And &#038;HFF&#038;<br />
End Function
</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.blogwoo.com/archives/767.html/feed/</wfw:commentRss>
		</item>
		<item>
		<title>flash如何调用mpg</title>
		<link>http://tech.blogwoo.com/archives/756.html</link>
		<comments>http://tech.blogwoo.com/archives/756.html#comments</comments>
		<pubDate>Sat, 29 Dec 2007 08:27:54 +0000</pubDate>
		<dc:creator>sumnny</dc:creator>
		
		<category>flash</category>

		<guid isPermaLink="false">http://tech.blogwoo.com/archives/756.html</guid>
		<description><![CDATA[最近做项目的时候遇到一个问题，客户有很多mpg的视频需要展示。如何处理呢？
在网上搜了一下，发现虽然有不同的方法可以直接调用mpg，但是总感觉不是最佳方法。
大多数人所以不用flv，一可能是服务器支持的问题，二则可能是画面质量的问题。
现在我所做的项目客户并不要求能在网络上播放，只是在光盘演示用或者在电脑上直接看，所以不用考虑flv的支持问题。
对于flv质量问题，我是在flash8直接导入mpg视频后转换成flv的，修改转换设置，经过几次摸索，发现视频编码使用On2 VP6，关键帧间隔设为2，最大数据速率设为2000Kb/秒，如此转换出来的flv大小只比原来mpg的视频大3M，但是质量损失很小，同事对比后甚至说比原来的画面看着还好。
从中还发现一个有趣的问题，当设定了关键帧间隔的时候，更改最大数据速率对输出结果的影响很小，也就是说关键帧更大决定了输出视频的大小。

]]></description>
			<content:encoded><![CDATA[<p>最近做项目的时候遇到一个问题，客户有很多mpg的视频需要展示。如何处理呢？</p>
<p>在网上搜了一下，发现虽然有不同的方法可以<a href="http://www.flashtc.com/tcshow/tc1040.htm" target="_blank">直接调用mpg</a>，但是总感觉不是最佳方法。</p>
<p>大多数人所以不用flv，一可能是服务器支持的问题，二则可能是画面质量的问题。</p>
<p>现在我所做的项目客户并不要求能在网络上播放，只是在光盘演示用或者在电脑上直接看，所以不用考虑flv的支持问题。</p>
<p>对于flv质量问题，我是在flash8直接导入mpg视频后转换成flv的，修改转换设置，经过几次摸索，发现视频编码使用On2 VP6，关键帧间隔设为2，最大数据速率设为2000Kb/秒，如此转换出来的flv大小只比原来mpg的视频大3M，但是质量损失很小，同事对比后甚至说比原来的画面看着还好。</p>
<p>从中还发现一个有趣的问题，当设定了关键帧间隔的时候，更改最大数据速率对输出结果的影响很小，也就是说关键帧更大决定了输出视频的大小。
</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.blogwoo.com/archives/756.html/feed/</wfw:commentRss>
		</item>
		<item>
		<title>attachMovie的结果不同</title>
		<link>http://tech.blogwoo.com/archives/742.html</link>
		<comments>http://tech.blogwoo.com/archives/742.html#comments</comments>
		<pubDate>Wed, 05 Dec 2007 06:02:36 +0000</pubDate>
		<dc:creator>sumnny</dc:creator>
		
		<category>flash</category>

		<guid isPermaLink="false">http://tech.blogwoo.com/archives/742.html</guid>
		<description><![CDATA[在flash里随便花个矩形，转化成mc和按钮，在属性里分别设标识符为“bt1”“mc2”
在第一帧加入下面代码：
_root.createEmptyMovieClip(&#8221;test&#8221;, 1);
test.attachMovie(&#8221;bt&#8221;, &#8220;bt1&#8243;, 2, {_x:20, _y:20});
test.attachMovie(&#8221;mc&#8221;, &#8220;mc2&#8243;, 3, {_x:20, _y:20});
trace(test.bt1._x);
trace(test.mc2._x);
位置竟然不一样！
attachMovie不能加在按钮么？

]]></description>
			<content:encoded><![CDATA[<p>在flash里随便花个矩形，转化成mc和按钮，在属性里分别设标识符为“bt1”“mc2”</p>
<p>在第一帧加入下面代码：</p>
<blockquote><p>_root.createEmptyMovieClip(&#8221;test&#8221;, 1);<br />
test.attachMovie(&#8221;bt&#8221;, &#8220;bt1&#8243;, 2, {_x:20, _y:20});<br />
test.attachMovie(&#8221;mc&#8221;, &#8220;mc2&#8243;, 3, {_x:20, _y:20});<br />
trace(test.bt1._x);<br />
trace(test.mc2._x);</p></blockquote>
<p>位置竟然不一样！</p>
<p>attachMovie不能加在按钮么？
</p>
]]></content:encoded>
			<wfw:commentRss>http://tech.blogwoo.com/archives/742.html/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
