﻿<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>学习日记 &#187; Protocol</title>
	<atom:link href="https://www.softwareace.cn/?feed=rss2&#038;tag=protocol" rel="self" type="application/rss+xml" />
	<link>https://www.softwareace.cn</link>
	<description>时刻想着为自己的产品多做一些对他好的事情</description>
	<lastBuildDate>Fri, 20 Mar 2026 06:58:28 +0000</lastBuildDate>
	<language>zh-CN</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>将应用程序注册为URL协议（Registering an Application to a URL Protocol）</title>
		<link>https://www.softwareace.cn/?p=903</link>
		<comments>https://www.softwareace.cn/?p=903#comments</comments>
		<pubDate>Tue, 12 Aug 2014 09:59:23 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[win32]]></category>
		<category><![CDATA[Protocol]]></category>

		<guid isPermaLink="false">http://www.softwareace.cn/?p=903</guid>
		<description><![CDATA[原文链接：Registering an Application to a URL Protocol（http: [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>原文链接：Registering an Application to a URL Protocol（<a title="http://msdn2.microsoft.com/en-us/library/aa767914.aspx" href="http://msdn2.microsoft.com/en-us/library/aa767914.aspx">http://msdn2.microsoft.com/en-us/library/aa767914.aspx</a>）</p>
<p>文章《<a href="http://msdn2.microsoft.com/en-us/library/aa767916(VS.85).aspx">About Asynchronous Pluggable Protocols</a>》（中译<a href="http://www.cnblogs.com/volnet/articles/1126665.html">[翻译]关于“异步可插协议”（About Asynchronous Pluggable Protocols(APPs)）</a>）描述了如何为一个新的协议开发处理程序（处理器handlers）。在一些案例中，可能会描述如何调用另外一个应用程序来处理自定义协议（custom protocol）。注册已经存在的应用程序为一个URL协议处理器即可。一旦应用程序被成功地启动，我们可以使用命令行参数来重新找回URL来启动它。</p>
<ul>
<li>注册应用程序来处理自定义协议</li>
<li>启动处理程序</li>
<li>示例</li>
<li>相关主题</li>
</ul>
<p><strong>注册应用程序来处理自定义协议</strong></p>
<p>你必须添加一个新的key以及相关的value到HKEY_CLASSES_ROOT中，来使应用程序可以处理特殊的URL协议。</p>
<p>新注册的key必须与协议scheme相匹配才可以被添加。例如，增加一个“alert:”协议，被增加到HKEY_CLASSES_ROOT的key必须是<strong>alert</strong>。在这个新的key之下，默认的字符串value将显示新协议的名字，并且URL协议字符串value将包含协议特有的信息或者空字符串。Keys将同样被添加到<strong>DefaultIcon</strong>和<strong>shell</strong>中。</p>
<p>默认的DefaultIcon key的字符串value必须是新URL协议图标文件名的路径。（译注1：<a href="http://msdn2.microsoft.com/en-us/library/ms682212(VS.85).aspx">DefaultIcon key</a>）</p>
<p>在<strong>shell</strong> key之下，一个key使用一个动词（就像open）将被添加。一个<strong>command（命令） </strong>key和一个<strong>DDEEXEC（动态数据交换执行） </strong>key都是使用动词来添加的。这command和DDEEXEC keys之后的values都是用来调用（或者启动）处理新协议的应用程序。</p>
<p>&nbsp;</p>
<p><strong>启动处理程序</strong></p>
<p>当一个用户点击一个注册了你的自定义URL协议的链接后，Windows Internet Explorer（IE）启动注册的URL协议的处理器。如果指定shellopen命令在注册表中包含一个%1参数的话，Internet Explorer传递这个URI给注册协议的处理器。这最后的统一资源标识符（URI）被编码（%1）；即16进制换码符被转换为等价的UTF-16字符。例如，用%20字符串取代空格。</p>
<p><em>安全警示：应用程序处理URL协议必须全力面对恶意数据。因为处理程序接收来自不信任源的数据，URL和其它参数值传递给应用程序可能包含的恶意数据企图使用处理程序。因此，处理程序可以首先启动基于外部数据的空闲行为确认这些行为以及它们的用户。</em></p>
<p><em>注意：另外，处理程序将要有能力处理URLs有可能太长或者包含意想不到（或者多余的）字符串。更多信息，请参看《<a href="http://www.microsoft.com/mspress/books/sampchap/5957.aspx">Writing Secure Code</a>》</em></p>
<p>&nbsp;</p>
<p><strong>示例</strong></p>
<p>接下来的例子演示如何注册alert.exe应用程序，来处理alert协议。</p><pre class="crayon-plain-tag">&lt;strong&gt;HKEY_CLASSES_ROOT
	alert&lt;/strong&gt;
	(Default) = &quot;URL:Alert Protocol&quot;
	URL Protocol = &quot;&quot;
	&lt;strong&gt;DefaultIcon&lt;/strong&gt;
		(Default) = &quot;alert.exe&quot;
&lt;strong&gt;	shell
		open
			command&lt;/strong&gt;
				(Default) = &quot;C:\Program Files\Alert\alert.exe&quot; &quot;%1&quot;</pre><p></p><pre class="crayon-plain-tag">增加这些设置信息到注册表，尝试导航到像&ldquo;alert:Hello%20World&rdquo;这样的URLs中，将会尝试启动alert.exe程序并且在命令行中传递&ldquo;Hello World&rdquo;</pre><p>下面的代码包含了一个简单的C#控制台应用程序演示了一种实现alert协议处理程序的方式。</p><pre class="crayon-plain-tag">using System;
using System.Collections.Generic;
using System.Text;

namespace Alert1
{
  class Program
  {
    static string ProcessInput(string s)
    {
       // TODO Verify and validate the input 
       // string as appropriate for your application.
       // return s;
    }

    static void Main(string[] args)
    {
      Console.WriteLine(&quot;Alert.exe invoked with the following parameters.\r\n&quot;);
      Console.WriteLine(&quot;Raw command-line: \n\t&quot; + Environment.CommandLine);

      Console.WriteLine(&quot;\n\nArguments:\n&quot;);
      foreach (string s in args)
      {
        Console.WriteLine(&quot;\t&quot; + ProcessInput(s));
      }
      Console.WriteLine(&quot;\nPress any key to continue...&quot;);
      Console.ReadKey();
    }
  }
}</pre><p></p><pre class="crayon-plain-tag"></pre><p><strong>相关主题</strong></p>
<ul>
<li><a href="http://msdn2.microsoft.com/en-us/library/aa767916(VS.85).aspx">About Asynchronous Pluggable Protocols</a></li>
<li><a href="http://msdn2.microsoft.com/en-us/library/aa767915(VS.85).aspx">Debugging Tips</a><strong>译注</strong>
<p>2.详细步骤：</p>
<ol>
<li>编写如上所示的控制台程序，并记录下exe所在的全路径；</li>
<li>开始-&gt;运行-&gt;输入“REGEDIT”确定，以启动“注册表编辑器”；</li>
<li>找到（通常是第一个）HKEY_CLASSES_ROOT节点，右键新建项，输入你期望的协议名，如GoCool；</li>
<li>同样方式建立如下所示层级结构：<br />
<a href="http://images.cnblogs.com/cnblogs_com/volnet/WindowsLiveWriter/URLRegisteringanApplicationtoaURLProtoco_DB96/UrlProtocol_4.jpg"><img alt="UrlProtocol" src="http://images.cnblogs.com/cnblogs_com/volnet/WindowsLiveWriter/URLRegisteringanApplicationtoaURLProtoco_DB96/UrlProtocol_thumb_1.jpg" width="640" height="500" border="0" /></a></li>
<li>在浏览器执行：<br />
<a href="http://images.cnblogs.com/cnblogs_com/volnet/WindowsLiveWriter/URLRegisteringanApplicationtoaURLProtoco_DB96/UrlProtocolResult_2.jpg"><img alt="UrlProtocolResult" src="http://images.cnblogs.com/cnblogs_com/volnet/WindowsLiveWriter/URLRegisteringanApplicationtoaURLProtoco_DB96/UrlProtocolResult_thumb.jpg" width="667" height="288" border="0" /></a></li>
</ol>
<p>值得注意的是参数会默认以“,”开始，不过没关系，能够得到所有的URL字符串，对我们来说，其他内容也就是一些老调重弹了。这个“,”就是在设置command中的那个&#8221;……&#8221;,&#8221;%1&#8243;中的这个逗号。也可以用“C:\GoCoolCenter\MyCSharpProject\ConsoleApplication\CA_RegisteringHandlingCustomProtocol\CA_RegisteringHandlingCustomProtocol\bin\Debug\CA_RegisteringHandlingCustomProtocol.exe &#8220;%1&#8243;”的语句来代替之前的语句。去掉“&#8221;%1&#8243;”两边的引号，之后的参数将以空格进行分隔输出。</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>https://www.softwareace.cn/?feed=rss2&#038;p=903</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>注册协议（Register Protocol）</title>
		<link>https://www.softwareace.cn/?p=902</link>
		<comments>https://www.softwareace.cn/?p=902#comments</comments>
		<pubDate>Tue, 12 Aug 2014 09:56:48 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[xul]]></category>
		<category><![CDATA[Protocol]]></category>

		<guid isPermaLink="false">http://www.softwareace.cn/?p=902</guid>
		<description><![CDATA[原文链接：http://kb.mozillazine.org/Register_protocol 协议是一个用 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><strong>原文链接</strong>：<a title="http://kb.mozillazine.org/Register_protocol" href="http://kb.mozillazine.org/Register_protocol">http://kb.mozillazine.org/Register_protocol</a></p>
<p>协议是一个用来通过连接来发送、接收和处理信息的方法。普通常见的浏览器协议包括http、https、ftp和mailto。为了你能够发送一个指定的协议来查看信息，你必须注册它们。如果你输入一个未知协议（如foo）的URL在你的定位符工具栏中，你将接收到一个这样的消息：“FireFox不知道如何打开这个地址，因为协议（foo）并不关联于任何程序或者在Mozilla Suite/SeaMonkey中，foo不是一个已经注册的协议”。（译注1）</p>
<p>一旦注册，协议就可以用你指定的程序进行处理，就像你的浏览器或者第三方的阅读器。这意味着一个超级链接（例如：foo://fred）可以使用协议foo来打开文件fred。（译注2）</p>
<p>内容：（以下链接指向原文）</p>
<p>[<a href="http://kb.mozillazine.org/">hide</a>]</p>
<ul>
<li><a href="http://kb.mozillazine.org/#Windows">1 Windows</a></li>
<li><a href="http://kb.mozillazine.org/#Linux_and_Mac">2 Linux and Mac</a></li>
<li><a href="http://kb.mozillazine.org/#Troubleshooting">3 Troubleshooting</a></li>
<li><a href="http://kb.mozillazine.org/#See_also">4 See also</a></li>
<li><a href="http://kb.mozillazine.org/#External_links">5 External links</a></li>
</ul>
<p>&nbsp;</p>
<p><strong>Windows</strong></p>
<p>在Windows中，协议注册时写入操作系统的。例如，当你设置一个网页浏览器为默认浏览器，操作系统将注册http、https和ftp协议并且将它们关联到这个网页浏览器；当你在邮件消息或者一个互联网快捷方式中打开http、https和ftp链接的时候，这个URL将通过这个网页浏览器来打开。相似的，当你设置默认的邮件客户端，操作系统将注册mailto协议，以至于在浏览器中打开mailto链接的时候会打开这个关联的邮件应用程序。</p>
<p><em>注意： </em><a href="http://kb.mozillazine.org/Mozilla_Suite_:_Issues_:_Integration"><em>Mozilla Suite/SeaMonkey integrates mail and browser functions</em></a><em>以至于一个邮件消息的网页链接（例如：http://链接）将在SeaMonkey浏览器窗体中打开，“mailto:”链接将在SeaMonkey Mail中打开，而不管操作系统中协议处理器的相关设置。</em></p>
<p>其他协议可以通过配置一个安装的程序被注册为关联到一个外部应用程序来处理相关内容。例如：你可以通过RealPlayer的“偏好”-&gt;“内容”-&gt;“媒体类型”设置为RTSP URLs注册相关的处理器为RealPlayer(<a href="http://en.wikipedia.org/wiki/Real_Time_Streaming_Protocol">Real-Time Streaming Protocol</a>)。接下来当你再次打开rtsp://链接的时候，Firefox或者Mozilla Suite/SeaMonkey将在应用程序启动前询问你是否确定这个外部的协议请求。（译注3）</p>
<p>同样也可以通过创建一个像下面这样的.reg文件来注册协议，将它们改成文件：</p><pre class="crayon-plain-tag">REGEDIT4

[HKEY_CLASSES_ROOT\foo]
@=&quot;URL:foo Protocol&quot;
&quot;URL Protocol&quot;=&quot;&quot;

[HKEY_CLASSES_ROOT\foo\shell]

[HKEY_CLASSES_ROOT\foo\shell\open]

[HKEY_CLASSES_ROOT\foo\shell\open\command]
@=&quot;\&quot;C:\\Program Files\\Application\\program.exe\&quot; \&quot;%1\&quot;&quot;</pre><p></p><pre class="crayon-plain-tag">将foo替换为你指定的希望运行的程序&lt;i&gt;C:\\Program Files\\Application\\program.exe。&lt;/i&gt;</pre><p></p><pre class="crayon-plain-tag">&lt;i&gt;注意：两个反斜干（\\）以及转义的引号（\&quot;）不应该被替换（必须的）。保存文件，然后双击它们以让他们插入Windows注册表。看看附加信息《&lt;a href=&quot;http://msdn2.microsoft.com/en-us/library/aa767914.aspx&quot;&gt;Registering an Application to a URL Protocol&lt;/a&gt;》&lt;/i&gt;</pre><p></p><pre class="crayon-plain-tag">&lt;em&gt;&lt;/em&gt;</pre><p></p><pre class="crayon-plain-tag">&lt;strong&gt;Linux和Mac&lt;/strong&gt;</pre><p>输入about:config到地址栏并敲入回车。</p>
<p>右键-&gt;新建-&gt;布尔-&gt;名字：网络.协议.处理器.外部.foo-&gt;值-&gt;true（用你指定的协议还原foo）</p>
<p>（英文版）Right-click -&gt; New -&gt; Boolean -&gt; Name: <b>network.protocol-handler.external.foo</b> -&gt; Value -&gt; <b>true</b>(Replacing foo with the protocol you&#8217;re specifying)</p>
<p>右键-&gt;新建-&gt;字符-&gt;名字：网络.协议.处理器.应用.foo-&gt;值-&gt;/path/to/app（用你指定的协议还原foo，并且path/to/app部分用你希望执行的应用程序路径来替换）</p>
<p>（英文版）Right-click -&gt; New -&gt; String -&gt; Name: <b>network.protocol-handler.app.foo</b> -&gt; Value -&gt; <b>/path/to/app</b>(Replacing foo with the protocol you&#8217;re specifying and /path/to/app with the path to the application you want to run.</p>
<p>确保<a href="http://kb.mozillazine.org/Network.protocol-handler.expose-all">network.protocol-handler.expose-all</a>设置为true。（译注4）</p>
<p>&nbsp;</p>
<p><strong>解决纷争</strong></p>
<p>（Linux和Mac）如果设置偏好的时候路径或者名字不正确，FireFox将显示错误为：“协议（foo）没有与任何程序关联。”(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=312953">bug 312953</a>)</p>
<p>如果你在Firefox使用mailto协议没有关联任何程序，请重新设置你的默认邮件客户端（<a href="http://kb.mozillazine.org/Default_mail_client">default mail client</a>.）。</p>
<p>默认情况下不安全的协议将被忽略(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=173010">bug 173010</a>).</p>
<p>&nbsp;</p>
<p><strong>关联</strong></p>
<ul>
<li><a href="http://kb.mozillazine.org/Network.protocol-handler.app.%28protocol%29">network.protocol-handler.app.(protocol)</a></li>
<li><a href="http://kb.mozillazine.org/Network.protocol-handler.external.%28protocol%29">network.protocol-handler.external.(protocol)</a></li>
</ul>
<p>&nbsp;</p>
<p><strong>外部链接</strong></p>
<p><a href="http://support.mozilla.com/kb/The+protocol+is+not+associated+with+any+program">The protocol is not associated with any program (Firefox Support)</a></p>
<p>&nbsp;</p>
<p><strong>译注</strong></p>
<p>1.因为原文发布于mozillzaine，所以其以firefox为示例。</p>
<p>2.事实上，不是打开名为fred的文件。</p>
<p>3.默认安全设置下的Internet Explorer将不会询问，而Firefox将会询问。</p>
<p>4.如图所示</p>
<p><a href="http://images.cnblogs.com/cnblogs_com/volnet/WindowsLiveWriter/RegisterProtocol_1192C/UrlProtocolFireFoxNetworkProtocol-HandlerExpose-All_2.jpg"><img alt="UrlProtocolFireFoxNetworkProtocol-HandlerExpose-All" src="http://images.cnblogs.com/cnblogs_com/volnet/WindowsLiveWriter/RegisterProtocol_1192C/UrlProtocolFireFoxNetworkProtocol-HandlerExpose-All_thumb.jpg" width="382" height="145" border="0" /></a></p>
]]></content:encoded>
			<wfw:commentRss>https://www.softwareace.cn/?feed=rss2&#038;p=902</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>利用Register protocol实现网页调用桌面程序(类似迅雷、QQ等)</title>
		<link>https://www.softwareace.cn/?p=841</link>
		<comments>https://www.softwareace.cn/?p=841#comments</comments>
		<pubDate>Fri, 27 Jun 2014 03:28:54 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[开发经验]]></category>
		<category><![CDATA[Protocol]]></category>

		<guid isPermaLink="false">http://www.softwareace.cn/?p=841</guid>
		<description><![CDATA[前言 我们经常看到 tencent://.. thunder://     这两种开头的网址，往往觉得很奇怪， [&#8230;]]]></description>
				<content:encoded><![CDATA[<h1>前言</h1>
<p>我们经常看到 tencent://.. thunder://     这两种开头的网址，往往觉得很奇怪，很想弄懂其中的原理，是如何实现的，我查找了相关的 资料，终于找到了，跟大家分享下。</p>
<h1><a name="t1"></a>原理篇</h1>
<p>微软官方说明：<a href="http://msdn.microsoft.com/en-us/library/Aa767914.aspx" target="_blank">http://msdn.microsoft.com/en-us/library/Aa767914.aspx</a></p>
<p>tencent://.. thunder://      是 腾讯 和 迅雷 的协议，即页面上或地址栏里的链接只要输入带有 tencent://… 的协议，就会自动调用一个已写好的程序执行该协议的操作。 或者是打开页面，迅雷的是下载资源的链接     。<br />
通过微软的说明,知道这是Register protocol，对于 Windows、Linux 和 OS X 操作系统都可以注册这样的协议。<br />
比如说 Windows，其实只需写入注册表，即可实现协议与执行程序的关联。<br />
例如腾讯的协议注册表如下：<br />
[HKEY_CLASSES_ROOT\TENCENT]<br />
@=”TencentProtocol”<br />
“URL Protocol”=”D:\\Program Files\\Tencent\\QQ\\Timwp.exe”<br />
[HKEY_CLASSES_ROOT\TENCENT\DefaultIcon]<br />
@=”D:\\Program Files\\Tencent\\QQ\\Timwp.exe,1″<br />
[HKEY_CLASSES_ROOT\TENCENT\shell]<br />
[HKEY_CLASSES_ROOT\TENCENT\shell\open]<br />
[HKEY_CLASSES_ROOT\TENCENT\shell\open\command]<br />
@=”\”D:\\Program Files\\Tencent\\QQ\\Timwp.exe\” \”%1\”&#8221;<br />
<img alt="" src="http://img.my.csdn.net/uploads/201211/25/1353828953_8907.png" /><br />
所实现的就是当浏览器（或其它）碰到 tencent://… 时，自动调用 Timwp.exe，并把 tencent://… 地址作为第一个参数传递给 Timwp.exe。</p>
<h1><a name="t2"></a>实现篇</h1>
<p>下面我们自己来实现这样的需求：</p>
<p>要实现如上功能，最主要的还是对注册表的处理。新建一个注册表文件</p>
<div>
<div>
<div><b>[plain]</b><a title="view plain" href="http://blog.csdn.net/cometnet/article/details/8222522#">view plain</a><a title="copy" href="http://blog.csdn.net/cometnet/article/details/8222522#">copy</a><a title="print" href="http://blog.csdn.net/cometnet/article/details/8222522#">print</a><a title="?" href="http://blog.csdn.net/cometnet/article/details/8222522#">?</a>&nbsp;</p>
<div></div>
</div>
</div>
<ol start="1">
<li>Windows Registry Editor Version 5.00</li>
<li></li>
<li>[HKEY_CLASSES_ROOT/FinstoneRpt]</li>
<li>@=&#8221;FRptProtocol&#8221;</li>
<li>&#8220;URL Protocol&#8221;=&#8221;I://Release//CZBYReport.exe&#8221;</li>
<li></li>
<li>[HKEY_CLASSES_ROOT/FinstoneRpt/DefaultIcon]</li>
<li>@=&#8221;I://Release//CZBYReport.exe,0&#8243;</li>
<li></li>
<li>[HKEY_CLASSES_ROOT/FinstoneRpt/shell]</li>
<li></li>
<li>[HKEY_CLASSES_ROOT/FinstoneRpt/shell/open]</li>
<li></li>
<li>[HKEY_CLASSES_ROOT/FinstoneRpt/shell/open/command]</li>
<li>@=&#8221;/&#8221;I://Release//CZBYReport.exe/&#8221; /&#8221;%1/&#8221;&#8221;</li>
</ol>
</div>
<p>以上定义了协议名：FinstoneRpt，及相关调用处理程序的位置。各位可自行调整。<br />
将上述内容导入到注册表中，然后在相关网页里加上一个连接:</p>
<div>
<div>
<div><b>[html]</b><a title="view plain" href="http://blog.csdn.net/cometnet/article/details/8222522#">view plain</a><a title="copy" href="http://blog.csdn.net/cometnet/article/details/8222522#">copy</a><a title="print" href="http://blog.csdn.net/cometnet/article/details/8222522#">print</a><a title="?" href="http://blog.csdn.net/cometnet/article/details/8222522#">?</a>&nbsp;</p>
<div></div>
</div>
</div>
<ol start="1">
<li>&lt;a href=&#8221;FinstoneRpt://message/?id=3e5065a6-19a0-41e6-afab-db7cc4bd3c76&#8243;&gt;test&lt;/a&gt;</li>
</ol>
</div>
<p>当点击时，则会调用注册表中记录的程序。当然该程序可以接受参数：就是href里的所有内容。可根据情况自行判断处理。<br />
如需通过ＶＳ的安装程序实现安装时自动执行以上操作。在安装程序里，导入上述注册表文件，因为用户安装时的路径不一样，要定位注册表中记录的程序，只需在ＶＳ里将相关注册键值修改：<br />
<img alt="" src="http://img.my.csdn.net/uploads/201211/25/1353829221_9252.jpg" /></p>
<p>将涉及具体地址都一一改成[TARGETDIR]程序名，即可。</p>
<p>&nbsp;</p>
<p>当你注册协议后，你就可以用指定的程序去“解释”这个协议,在软件里通过取命令行(GetCommandLine)获取传递过来的参数就行了.</p>
<p>http://blog.csdn.net/cometnet/article/details/8222522</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>https://www.softwareace.cn/?feed=rss2&#038;p=841</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
