﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-Angel</title><link>http://www.cppblog.com/Angel/</link><description /><language>zh-cn</language><lastBuildDate>Thu, 23 Apr 2026 10:16:11 GMT</lastBuildDate><pubDate>Thu, 23 Apr 2026 10:16:11 GMT</pubDate><ttl>60</ttl><item><title>由Tencent://Message协议想到的一个解决方案 </title><link>http://www.cppblog.com/Angel/archive/2011/01/16/138604.html</link><dc:creator>树袋大雄</dc:creator><author>树袋大雄</author><pubDate>Sun, 16 Jan 2011 10:01:00 GMT</pubDate><guid>http://www.cppblog.com/Angel/archive/2011/01/16/138604.html</guid><wfw:comment>http://www.cppblog.com/Angel/comments/138604.html</wfw:comment><comments>http://www.cppblog.com/Angel/archive/2011/01/16/138604.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Angel/comments/commentRss/138604.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Angel/services/trackbacks/138604.html</trackback:ping><description><![CDATA[<br><br><br>转自：<a href="http://www.cnblogs.com/phinecos/archive/2009/03/06/1404951.html">http://www.cnblogs.com/phinecos/archive/2009/03/06/1404951.html</a><br>
<div id=main>
<div class=post>
<h2><a id=ctl02_TitleUrl href="http://www.cnblogs.com/phinecos/archive/2009/03/06/1404951.html"><u><font color=#810081>由Tencent://Message协议想到的一个解决方案</font></u></a> </h2>
<p><span style="FONT-FAMILY: 宋体">源代码下载：</span><span style="COLOR: red"><a href="http://files.cnblogs.com/phinecos/HelloWorldProtocal.rar"><span style="COLOR: red"><u>http://files.cnblogs.com/phinecos/HelloWorldProtocal.rar</u></span></a></span></p>
<p style="TEXT-INDENT: 21pt"><span style="FONT-FAMILY: 宋体">前天在</span><a href="http://www.cnblogs.com/BruceZhang"><u><font color=#0000ff>BruceZhang </font></u></a><span style="FONT-FAMILY: 宋体">的一篇博文《</span><a href="http://www.cnblogs.com/BruceZhang/archive/2009/02/10/1387402.html"><span style="FONT-FAMILY: 宋体"><u><font color=#0000ff>求助：如何在ASP<span style="FONT-FAMILY: 宋体">页面中调用</span>Winform<span style="FONT-FAMILY: 宋体">程序呢？</span></font></u></a></span><span style="FONT-FAMILY: 宋体">》中</span><span style="FONT-FAMILY: 宋体">回答了他提出的问题，但细想下觉得我的思路有误。</span></p>
<p><span style="FONT-FAMILY: 宋体; FONT-SIZE: 10.5pt">&nbsp;&nbsp;&nbsp;&nbsp;今天在试用<span style="FONT-FAMILY: 'Verdana','sans-serif'"><a href="http://im.qq.com/webqq/"><u><font color=#0000ff>WebQQ</font></u></a></span></span><span style="FONT-FAMILY: 宋体; FONT-SIZE: 10.5pt">的时候，无聊中想起很多人的博客上都有这样的小玩意，</span><img alt="" src="http://lh4.ggpht.com/_yGLSIYG17Vs/SbEl6N1WozI/AAAAAAAAADA/xSFryZhNvAA/s800/2009030601.jpg"> ,&nbsp; <span style="FONT-FAMILY: 宋体">点击下就可以和博主进行对话，而且无需加博主为好友。</span></p>
<p style="TEXT-INDENT: 21pt"><span style="FONT-FAMILY: 宋体">哎，这样的方式不就正好是</span>BruceZhang<span style="FONT-FAMILY: 宋体">那个问题的解决方案吗？那么腾讯是怎么做到在</span>Web<span style="FONT-FAMILY: 宋体">页面中调用</span>QQ<span style="FONT-FAMILY: 宋体">程序的呢？</span></p>
<p style="TEXT-INDENT: 21pt"><span style="FONT-FAMILY: 宋体">先来看腾讯提供给我们的代码：</span><span style="FONT-FAMILY: 宋体"></p>
<div class=cnblogs_code><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">a&nbsp;</span><span style="COLOR: #ff0000">href</span><span style="COLOR: #0000ff">="tencent://message/?uin=88888888&amp;Site=JooIT.com&amp;Menu=yes"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">img&nbsp;</span><span style="COLOR: #ff0000">border</span><span style="COLOR: #0000ff">="0"</span><span style="COLOR: #ff0000">&nbsp;SRC</span><span style="COLOR: #0000ff">='http://is.qq.com/webpresence/images/status/01_online.gif'&nbsp;</span><span style="COLOR: #ff0000">alt</span><span style="COLOR: #0000ff">="点击这里给我发消息"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">a</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span></div>
<p><span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;很显然，奥妙就在&#8220;</span>tencent://message/?uin=215555521&amp;Site=JooIT.com&amp;Menu=yes<span style="FONT-FAMILY: 宋体">&#8221;这里，那这又到底是什么原理呢？</span></p>
<p style="TEXT-INDENT: 21pt"><span style="FONT-FAMILY: 宋体">先扯开话题按自己的思路来想，要打开本地的</span>QQ<span style="FONT-FAMILY: 宋体">，肯定要分两步走，首先是定位到</span>QQ<span style="FONT-FAMILY: 宋体">，然后是传递给它一些参数，也就是&#8220;</span>uin=215555521&amp;Site=JooIT.com&amp;Menu=yes<span style="FONT-FAMILY: 宋体">&#8221;这样的东西。</span><span style="FONT-FAMILY: 宋体">定位的话，借助注册表是最明显的方式了。可怎么把</span>QQ<span style="FONT-FAMILY: 宋体">跑起来呢？要我们自己去启动一个进程么？答案是否定的，</span>Windows<span style="FONT-FAMILY: 宋体">操作系统考虑了这一点，允许我们为自己的应用程序注册为一个协议处理者，具体参见</span>MSDN<span style="FONT-FAMILY: 宋体">上的文章《</span><a href="http://msdn.microsoft.com/zh-cn/library/aa767914(en-us,VS.85).aspx"><u><font color=#0000ff>Registering an Application to a URL Protocol</font></u></a><span style="FONT-FAMILY: 宋体">》</span></p>
<p style="TEXT-INDENT: 21pt"><span style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 10.5pt">腾讯的Tencent://Message协议注册表如下：</span></span><span style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; FONT-SIZE: 10.5pt"></p>
<div class=cnblogs_code><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="COLOR: #000000">Windows&nbsp;Registry&nbsp;Editor&nbsp;Version&nbsp;</span><span style="COLOR: #000000">5.00</span><span style="COLOR: #000000"><br><br>[HKEY_CLASSES_ROOT\Tencent]<br></span><span style="COLOR: #000000">@=</span><span style="COLOR: #800000">"</span><span style="COLOR: #800000">TencentProtocol</span><span style="COLOR: #800000">"</span><span style="COLOR: #000000"><br></span><span style="COLOR: #800000">"</span><span style="COLOR: #800000">URL&nbsp;Protocol</span><span style="COLOR: #800000">"</span><span style="COLOR: #000000">=</span><span style="COLOR: #800000">"</span><span style="COLOR: #800000">D:\\Program&nbsp;Files\\Tencent\\QQ\\Timwp.exe</span><span style="COLOR: #800000">"</span><span style="COLOR: #000000"><br><br>[HKEY_CLASSES_ROOT\Tencent\DefaultIcon]<br></span><span style="COLOR: #000000">@=</span><span style="COLOR: #800000">"</span><span style="COLOR: #800000">D:\\Program&nbsp;Files\\Tencent\\QQ\\Timwp.exe,1</span><span style="COLOR: #800000">"</span><span style="COLOR: #000000"><br><br>[HKEY_CLASSES_ROOT\Tencent\shell]<br><br>[HKEY_CLASSES_ROOT\Tencent\shell\open]<br><br>[HKEY_CLASSES_ROOT\Tencent\shell\open\command]<br></span><span style="COLOR: #000000">@=</span><span style="COLOR: #800000">"</span><span style="COLOR: #800000">\</span><span style="COLOR: #800000">"</span><span style="COLOR: #000000">D:\\Program&nbsp;Files\\Tencent\\QQ\\Timwp.exe\</span><span style="COLOR: #800000">"</span><span style="COLOR: #800000">&nbsp;\</span><span style="COLOR: #800000">"</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">\</span><span style="COLOR: #800000">""</span><span style="COLOR: #000000"><br></span></div>
<p style="TEXT-INDENT: 21pt"></span></span><span style="FONT-FAMILY: 宋体"><span style="FONT-FAMILY: 宋体; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-fareast; mso-ascii-theme-font: minor-fareast">&nbsp;此注册表所实现的就是当浏览器（或其它）碰到<span lang=EN-US> tencent://&#8230; </span>时，自动调用<span lang=EN-US> Timwp.exe</span>，并把<span lang=EN-US> tencent://&#8230; </span>地址作为第一个参数传递给<span lang=EN-US> Timwp.exe</span>。<span lang=EN-US><o:p></o:p></span></span></p>
</span>
<p style="TEXT-INDENT: 21pt"><span style="FONT-FAMILY: 宋体">&nbsp;废话不多说，下面就动手实验一个</span>demo<span style="FONT-FAMILY: 宋体">来说明一切，源代码请在文章首部自行下载。</span> <span style="FONT-FAMILY: 宋体">很简单的功能，就是显示传递给</span>MFC Dialog<span style="FONT-FAMILY: 宋体">程序的参数值。就只分析下我添加的代码：</span></p>
<p><span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;首先需要获取传入的参数，在控制台程序中我们都知道</span>main()<span style="FONT-FAMILY: 宋体">函数的参数</span>argv<span style="FONT-FAMILY: 宋体">里带入了传入的参数，而在</span>MFC<span style="FONT-FAMILY: 宋体">程序中则需要在</span><span style="FONT-FAMILY: 新宋体; COLOR: black">InitInstance()</span><span style="FONT-FAMILY: 新宋体; COLOR: black">中进行命令行参数解析。</span><span style="FONT-FAMILY: 新宋体; COLOR: black"></p>
<div class=cnblogs_code><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;CCommandLineInfo&nbsp;&nbsp;&nbsp;cmdInfo;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;ParseCommandLine(cmdInfo);<br></span></div>
<p><span style="FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes; mso-bidi-font-size: 10.5pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;为了给对话框传入待显示的参数，加入了一个<span style="COLOR: black" lang=EN-US>SetDisplayInfo</span><span style="COLOR: black">方法。</span></span><span style="FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes; mso-bidi-font-size: 10.5pt"><span style="COLOR: black"></p>
<div class=cnblogs_code><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;CHelloWorldDlg&nbsp;dlg;<br>&nbsp;&nbsp;&nbsp;&nbsp;dlg.SetDisplayInfo(cmdInfo.m_strFileName);</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">设置待显示的信息</span></div>
<p></span></span><span style="FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes; mso-bidi-font-size: 10.5pt"><span style="COLOR: black">&nbsp;</p>
<div class=cnblogs_code><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;CHelloWorldDlg::SetDisplayInfo(CString</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;strInfo)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">m_strInfo&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;strInfo;<br>}<br></span></div>
<p><span style="FONT-FAMILY: 新宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;最后在<span style="COLOR: black">OnInitDialog</span><span style="COLOR: black">函数中进行参数解析</span></span></p>
<div class=cnblogs_code><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">解析传入的完整地址,e.g&nbsp;"helloworld:</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">hello&nbsp;world/"</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;pos&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;m_strInfo.Find(</span><span style="COLOR: #800000">"</span><span style="COLOR: #800000">//</span><span style="COLOR: #800000">"</span><span style="COLOR: #000000">);</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">找到分隔符</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;m_strInfo&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;m_strInfo.Mid(pos</span><span style="COLOR: #000000">+</span><span style="COLOR: #800080">2</span><span style="COLOR: #000000">);</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">取到传入的参数</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;m_strInfo.Delete(m_strInfo.GetLength()</span><span style="COLOR: #000000">-</span><span style="COLOR: #800080">1</span><span style="COLOR: #000000">);</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">去掉最后的'/'</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;m_edit_info.SetWindowText(m_strInfo);<br></span></div>
<p><span style="FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes; mso-bidi-font-size: 10.5pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;好了，来到最关键的步骤了，在注册表中为我们自定义的<span lang=EN-US>helloworld</span>协议建立起注册表项，从而让<span lang=EN-US>HelloWorld</span>应用程序支持此协议。将如下的注册表项加入即可<span lang=EN-US>,</span>这里为了简单起见我直接用一个<span lang=EN-US>.reg</span>文件来实现，也可以用其他方式进行：</span><span style="FONT-FAMILY: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes; mso-bidi-font-size: 10.5pt"><span lang=EN-US><o:p></p>
<div class=cnblogs_code><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="COLOR: #000000">Windows&nbsp;Registry&nbsp;Editor&nbsp;Version&nbsp;</span><span style="COLOR: #000000">5.00</span><span style="COLOR: #000000"><br><br>[HKEY_CLASSES_ROOT</span><span style="COLOR: #000000">\</span><span style="COLOR: #000000">HelloWorld]<br>@</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">HelloWorld&nbsp;Protocol</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">URL&nbsp;Protocol</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000"><br><br>[HKEY_CLASSES_ROOT</span><span style="COLOR: #000000">\</span><span style="COLOR: #000000">HelloWorld</span><span style="COLOR: #000000">\</span><span style="COLOR: #000000">DefaultIcon]<br>@</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">D:\\My&nbsp;Documents\\Visual&nbsp;Studio&nbsp;2005\\Projects\\HelloWorld\\release\\HelloWorld.exe,1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><br>[HKEY_CLASSES_ROOT</span><span style="COLOR: #000000">\</span><span style="COLOR: #000000">HelloWorld</span><span style="COLOR: #000000">\</span><span style="COLOR: #0000ff">shell</span><span style="COLOR: #000000">]<br>@</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000"><br><br>[HKEY_CLASSES_ROOT</span><span style="COLOR: #000000">\</span><span style="COLOR: #000000">HelloWorld</span><span style="COLOR: #000000">\</span><span style="COLOR: #0000ff">shell</span><span style="COLOR: #000000">\</span><span style="COLOR: #000000">open]<br>@</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000"><br><br>[HKEY_CLASSES_ROOT</span><span style="COLOR: #000000">\</span><span style="COLOR: #000000">HelloWorld</span><span style="COLOR: #000000">\</span><span style="COLOR: #0000ff">shell</span><span style="COLOR: #000000">\</span><span style="COLOR: #000000">open</span><span style="COLOR: #000000">\</span><span style="COLOR: #0000ff">command</span><span style="COLOR: #000000">]<br>@</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">\</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">D:</span><span style="COLOR: #000000">\\</span><span style="COLOR: #000000">My&nbsp;Documents</span><span style="COLOR: #000000">\\</span><span style="COLOR: #000000">Visual&nbsp;Studio&nbsp;</span><span style="COLOR: #000000">2005</span><span style="COLOR: #000000">\\</span><span style="COLOR: #000000">Projects</span><span style="COLOR: #000000">\\</span><span style="COLOR: #000000">HelloWorld</span><span style="COLOR: #000000">\\</span><span style="COLOR: #000000">release</span><span style="COLOR: #000000">\\</span><span style="COLOR: #000000">HelloWorld</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">exe</span><span style="COLOR: #000000">\</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;\</span><span style="COLOR: #000000">"</span><span style="COLOR: #800080">%1</span><span style="COLOR: #000000">\</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000"><br></span></div>
<p>&nbsp;<span style="FONT-FAMILY: 宋体">结果如图所示</span></o:p></span></span></span></span></p>
</span></span>
<p><img alt="" src="http://lh3.ggpht.com/_yGLSIYG17Vs/SbEl64liijI/AAAAAAAAADI/8qWEOAvCT8s/s800/2009030602.jpg">&nbsp;</p>
<p><span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;好了，这下可以来测试</span>helloworld<span style="FONT-FAMILY: 宋体">协议了，在地址栏中输入：</span>helloworld://hello world/,<span style="FONT-FAMILY: 宋体">怎么样，下面的画面出来了吧，</span></p>
<p><img alt="" src="http://lh3.ggpht.com/_yGLSIYG17Vs/SbEl7H1RxbI/AAAAAAAAADQ/8_s4PC1THkI/s800/2009030603.jpg"> </p>
<p><span style="FONT-FAMILY: 宋体; mso-fareast-theme-font: major-fareast; mso-hansi-theme-font: major-fareast; mso-ascii-theme-font: major-fareast; mso-bidi-font-size: 10.5pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;再来到<span lang=EN-US>web</span>页面进行测试，修改上面的<span lang=EN-US>html</span>代码如下：</span><span style="FONT-FAMILY: 宋体; mso-fareast-theme-font: major-fareast; mso-hansi-theme-font: major-fareast; mso-ascii-theme-font: major-fareast; mso-bidi-font-size: 10.5pt"></p>
<div class=cnblogs_code><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">html</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">head</span><span style="COLOR: #0000ff">&gt;&lt;/</span><span style="COLOR: #800000">head</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">div</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">a&nbsp;</span><span style="COLOR: #ff0000">href</span><span style="COLOR: #0000ff">="helloworld://hello&nbsp;world"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">img&nbsp;</span><span style="COLOR: #ff0000">border</span><span style="COLOR: #0000ff">="0"</span><span style="COLOR: #ff0000">&nbsp;SRC</span><span style="COLOR: #0000ff">='http://is.qq.com/webpresence/images/status/01_online.gif'&nbsp;</span><span style="COLOR: #ff0000">alt</span><span style="COLOR: #0000ff">="点击这里给我发消息"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">a</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">div</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">html</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span></div>
<p><span style="FONT-FAMILY: 宋体">&nbsp;&nbsp;&nbsp; </span><span style="FONT-FAMILY: 宋体">若是要在web页面调用本地的winform程序，同理也是可行，不过我不大懂.net,有心的朋友请试试看。</span></p>
<p><span style="FONT-FAMILY: 宋体">参考资料：</span></p>
<p style="TEXT-INDENT: -18pt; MARGIN-LEFT: 18pt"><span style="FONT-FAMILY: 宋体">1， </span><span style="FONT-FAMILY: 宋体"><a href="http://msdn.microsoft.com/zh-cn/library/aa767914(en-us,VS.85).aspx"><u><font color=#0000ff>Registering an Application to a URL Protocol</font></u></a></span><span style="FONT-FAMILY: 宋体">，</span></p>
<p style="TEXT-INDENT: -18pt; MARGIN-LEFT: 18pt"><span style="FONT-FAMILY: 宋体">2， </span><span style="FONT-FAMILY: 宋体"><a href="http://hi.baidu.com/gfan/blog/item/fe58bddeecf0d55eccbf1aad.html/cmtid/9bde82542bd452163a2935f1"><u><font color=#0000ff>Tencent://Message/协议的实现原理</font></u></a></span><span style="FONT-FAMILY: 宋体"></p>
<p><span style="FONT-FAMILY: 宋体">3</span><span style="FONT-FAMILY: 宋体">，<a href="http://www.vckbase.com/document/viewdoc/?id=1804"><u><font color=#810081>仿腾讯 QQ 和 Skype 通过URL触发自己的程序</font></u></a></span></p>
<p><span style="FONT-FAMILY: 宋体">4，<span style="FONT-FAMILY: 'Verdana','sans-serif'"><a href="http://kb.mozillazine.org/Register_protocol"><u><font color=#0000ff>Register protocol</font></u></a></span></p>
</span></span></span>
<div id=MySignature>
<p>作者：<a href="http://phinecos.cnblogs.com/" target=_blank><u><font color=#810081>洞庭散人</font></u></a></p>
<p>出处：<a href="http://phinecos.cnblogs.com/" target=_blank><u><font color=#810081>http://phinecos.cnblogs.com/</font></u></a>　　</p>
</div>
</div>
</div>
<img src ="http://www.cppblog.com/Angel/aggbug/138604.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Angel/" target="_blank">树袋大雄</a> 2011-01-16 18:01 <a href="http://www.cppblog.com/Angel/archive/2011/01/16/138604.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>八皇后问题的非递归解法</title><link>http://www.cppblog.com/Angel/archive/2011/01/16/138603.html</link><dc:creator>树袋大雄</dc:creator><author>树袋大雄</author><pubDate>Sun, 16 Jan 2011 09:10:00 GMT</pubDate><guid>http://www.cppblog.com/Angel/archive/2011/01/16/138603.html</guid><wfw:comment>http://www.cppblog.com/Angel/comments/138603.html</wfw:comment><comments>http://www.cppblog.com/Angel/archive/2011/01/16/138603.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Angel/comments/commentRss/138603.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Angel/services/trackbacks/138603.html</trackback:ping><description><![CDATA[<p>牛人用C++实现了八皇后问题的非递归算法。</p>
<p>使用了stl，stl的algorithm就是好用啊！<br>原文出处：&nbsp;<a href="http://wangcong.org/blog/?p=267">http://wangcong.org/blog/?p=267</a><br><br>#include &lt;cmath&gt;<br>#include &lt;iostream&gt;<br>#include &lt;vector&gt;<br>#include &lt;algorithm&gt;</p>
<p>using namespace std;<br>const int MAX = 8;</p>
<p>vector&lt;int&gt; board(MAX);</p>
<p>void show_result()<br>{<br>&nbsp;&nbsp;&nbsp; for(size_t i = 0; i &lt; board.size(); i++)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout&lt;&lt;"("&lt;&lt;i&lt;&lt;","&lt;&lt;board[i]&lt;&lt;")";<br>&nbsp;&nbsp;&nbsp; cout&lt;&lt;endl;<br>}</p>
<p>int check_cross()<br>{<br>&nbsp;&nbsp;&nbsp; for(size_t i = 0; i &lt; board.size()-1; i++)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(size_t j = i+1; j &lt; board.size(); j++)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if((j-i) == (size_t)abs(board[i]-board[j]))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; return 0;<br>}</p>
<p>void put_chess()<br>{<br>&nbsp;&nbsp;&nbsp; while(next_permutation(board.begin(), board.end()))<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!check_cross())<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; show_result();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br>}</p>
<p>int main()<br>{<br>&nbsp;&nbsp;&nbsp; for(size_t i =0; i &lt; board.size(); i++)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; board[i] = i;<br>&nbsp;&nbsp;&nbsp; put_chess();<br>&nbsp;&nbsp;&nbsp; return 0;<br>}</p>
<p><br>&nbsp;</p>
<img src ="http://www.cppblog.com/Angel/aggbug/138603.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Angel/" target="_blank">树袋大雄</a> 2011-01-16 17:10 <a href="http://www.cppblog.com/Angel/archive/2011/01/16/138603.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MSVC++ 对象内存模型深入解析与具体应用</title><link>http://www.cppblog.com/Angel/archive/2011/01/10/138291.html</link><dc:creator>树袋大雄</dc:creator><author>树袋大雄</author><pubDate>Mon, 10 Jan 2011 09:48:00 GMT</pubDate><guid>http://www.cppblog.com/Angel/archive/2011/01/10/138291.html</guid><wfw:comment>http://www.cppblog.com/Angel/comments/138291.html</wfw:comment><comments>http://www.cppblog.com/Angel/archive/2011/01/10/138291.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Angel/comments/commentRss/138291.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Angel/services/trackbacks/138291.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cppblog.com/Angel/archive/2011/01/10/138291.html'>阅读全文</a><img src ="http://www.cppblog.com/Angel/aggbug/138291.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Angel/" target="_blank">树袋大雄</a> 2011-01-10 17:48 <a href="http://www.cppblog.com/Angel/archive/2011/01/10/138291.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>