一、前言
最近有这样一个需求,需要在网页上面启动客户端的软件,软件之间的通信、调用,单单依靠HTML是无法实现了,因此必须借用Activex来实现。由于本人主要擅长C#,自然本文给出了用C#实现的范例,本文的预期效果是有一定Winform基础的人可都轻松读懂本文。
![](https://images0.cnblogs.com/blog/299660/201306/21162412-afb15b5dc9dc4a399e1cb4714f6f5ecf.jpg)
![](https://images0.cnblogs.com/blog/299660/201306/21162526-27de955842644dd982f12c98076bd271.jpg)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images0.cnblogs.com/blog/299660/201306/21162917-1d4c8e5149d745bd8b725ce549611889.jpg)
![](https://images0.cnblogs.com/blog/299660/201306/21163805-c0b2fac16be8482ab4ccec5d4716be1d.jpg)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
小提示:EUserControl代码的Guid可以用VS附带的Guid生成工具生成:
![](https://images0.cnblogs.com/blog/299660/201306/21164632-bfcdcdad543945aab421ef71a2f32d11.jpg)
//用户添加 [assembly: AllowPartiallyTrustedCallers()]
![](https://images0.cnblogs.com/blog/299660/201306/21164743-5c04c5bdc28b4b4db8a2e82f58054808.jpg)
![](https://images0.cnblogs.com/blog/299660/201306/21164937-8fb29fd1ebde455eb91e6434e0b2fa47.jpg)
![](https://images0.cnblogs.com/blog/299660/201306/21165005-a55f22065e3142069314754630688a87.jpg)
![](https://images0.cnblogs.com/blog/299660/201306/21165101-793f183e1c98455bb0a2ed6d7987f1ee.jpg)
[version] signature="$CHICAGO$" AdvancedINF=2.0 [Setup Hooks] hook1=hook1 [hook1] run=msiexec.exe /i "%EXTRACT_DIR%\EasySetup.msi" /qn
2) build.bat制作。新建txt文件,加入以下内容,将文件名重新命名build.bat即可。其中EasyActivex.cab是生成目标cab的名称;install.inf是第一步生成的文件名,而EasySetup.msi是需要打包的安装程序名;第二条ping命令仅仅是让批处理不要那么快退出,起到更利于观察生成结果的作用。
"cabarc.exe" -s 6144 n EasyActivex.cab install.inf EasySetup.msi ping -n 20 127.0.0.1 >nul
![](https://images0.cnblogs.com/blog/299660/201306/21170119-20d78499528e40aca8add5d06ebeb9d3.jpg)
![](https://images0.cnblogs.com/blog/299660/201306/21170544-8667060eb83c451b9e246508b1037dc1.jpg)
![](https://images0.cnblogs.com/blog/299660/201306/21171250-13899394f7ab477989821c6f97cc183b.jpg)
![](https://images0.cnblogs.com/blog/299660/201306/21171553-54ddaa9fe55b47279c433eb16489ba40.jpg)
<object id="csharpActiveX" codebase="Activex/EasyActivex.cab" classid="clsid:685F0A47-944D-4145-BF4E-76A02A422B02"></object>
运行效果如下:
点击即可在网页中打开记事本了。
六、参考资料:
1、使用C#开发ActiveX控件 http://www.cnblogs.com/yilin/archive/2009/09/15/1567332.html
2、Activex签名方法和工具技巧 http://www.360doc.com/content/10/0901/15/203871_50402416.shtml
3、中国数字认证网用户手册 http://www.ca365.com/forward.do?pageurl=/ca/yhsc.jsp
一、前言
最近有这样一个需求,需要在网页上面启动客户端的软件,软件之间的通信、调用,单单依靠HTML是无法实现了,因此必须借用Activex来实现。由于本人主要擅长C#,自然本文给出了用C#实现的范例,本文的预期效果是有一定Winform基础的人可都轻松读懂本文。
![](https://images0.cnblogs.com/blog/299660/201306/21162412-afb15b5dc9dc4a399e1cb4714f6f5ecf.jpg)
![](https://images0.cnblogs.com/blog/299660/201306/21162526-27de955842644dd982f12c98076bd271.jpg)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images0.cnblogs.com/blog/299660/201306/21162917-1d4c8e5149d745bd8b725ce549611889.jpg)
![](https://images0.cnblogs.com/blog/299660/201306/21163805-c0b2fac16be8482ab4ccec5d4716be1d.jpg)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
小提示:EUserControl代码的Guid可以用VS附带的Guid生成工具生成:
![](https://images0.cnblogs.com/blog/299660/201306/21164632-bfcdcdad543945aab421ef71a2f32d11.jpg)
//用户添加 [assembly: AllowPartiallyTrustedCallers()]
![](https://images0.cnblogs.com/blog/299660/201306/21164743-5c04c5bdc28b4b4db8a2e82f58054808.jpg)
![](https://images0.cnblogs.com/blog/299660/201306/21164937-8fb29fd1ebde455eb91e6434e0b2fa47.jpg)
![](https://images0.cnblogs.com/blog/299660/201306/21165005-a55f22065e3142069314754630688a87.jpg)
![](https://images0.cnblogs.com/blog/299660/201306/21165101-793f183e1c98455bb0a2ed6d7987f1ee.jpg)
[version] signature="$CHICAGO$" AdvancedINF=2.0 [Setup Hooks] hook1=hook1 [hook1] run=msiexec.exe /i "%EXTRACT_DIR%\EasySetup.msi" /qn
2) build.bat制作。新建txt文件,加入以下内容,将文件名重新命名build.bat即可。其中EasyActivex.cab是生成目标cab的名称;install.inf是第一步生成的文件名,而EasySetup.msi是需要打包的安装程序名;第二条ping命令仅仅是让批处理不要那么快退出,起到更利于观察生成结果的作用。
"cabarc.exe" -s 6144 n EasyActivex.cab install.inf EasySetup.msi ping -n 20 127.0.0.1 >nul
![](https://images0.cnblogs.com/blog/299660/201306/21170119-20d78499528e40aca8add5d06ebeb9d3.jpg)
![](https://images0.cnblogs.com/blog/299660/201306/21170544-8667060eb83c451b9e246508b1037dc1.jpg)
![](https://images0.cnblogs.com/blog/299660/201306/21171250-13899394f7ab477989821c6f97cc183b.jpg)
![](https://images0.cnblogs.com/blog/299660/201306/21171553-54ddaa9fe55b47279c433eb16489ba40.jpg)
<object id="csharpActiveX" codebase="Activex/EasyActivex.cab" classid="clsid:685F0A47-944D-4145-BF4E-76A02A422B02"></object>
运行效果如下:
点击即可在网页中打开记事本了。
六、参考资料:
1、使用C#开发ActiveX控件 http://www.cnblogs.com/yilin/archive/2009/09/15/1567332.html
2、Activex签名方法和工具技巧 http://www.360doc.com/content/10/0901/15/203871_50402416.shtml
3、中国数字认证网用户手册 http://www.ca365.com/forward.do?pageurl=/ca/yhsc.jsp