1. 找到COM的组件名,如"MSXML2.DOMDocument.3.0". 可以在注册表中去看.(HKEY_CLASSES_ROOT\...)
2. 在JS中创建对象:xmldoc = new ActiveXObject("MSXML2.DOMDocument.3.0");
3. 在对象上调用方法xmldoc.loadXML("xxxxxxx");
实例:查看MDACD版本.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> New Document </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
</head>
<body>
<script language="JavaScript">
<!--
var ver ;
ver = new ActiveXObject("MDACVer.Version");
alert (ver.Major);
//-->
</script>
</body>
</html>
晴天的例子:
C#代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.IO;
namespace WindowsControlLibrary1
{
public interface INewsMonitor
{
// 发送文件时,记录发送者,接收者和发送的文件名发送文件时,记录发送者,接收者和发送的文件名#region 发送文件时,记录发送者,接收者和发送的文件名
/**/
/**/
/**/
/// <summary>
/// 当发送文件时,记录发送者,接收者和发送的文件名
/// </summary>
/// <param name="strSendID">文件发送者</param>
/// <param name="strTargetID">文件接受者</param>
/// <param name="strFileName">文件名</param>
// [DispId(8)]
void SendFile(string strSendID, string strTargetID, string strFileName);
// 接收文件时,记录文件接收者,发送者和发送的文件名接收文件时,记录文件接收者,发送者和发送的文件名#region 接收文件时,记录文件接收者,发送者和发送的文件名
/**/
/**/
/**/
/// <summary>
/// 接受文件时,记录文件接收者,发送者和发送的文件名
/// </summary>
/// <param name="strReceiveID">文件接收者</param>
/// <param name="strSendID">文件发送者</param>
/// <param name="strFileName">文件名</param>
// [DispId(2)]
void RecvFile(string strReceiveID, string strSendID, string strFileName);
//文件发送成功后,记录发送者,接收者和发送的文件名文件发送成功后,记录发送者,接收者和发送的文件名#region 文件发送成功后,记录发送者,接收者和发送的文件名
/**/
/**/
/**/
/// <summary>
/// 文件发送成功后,记录发送者,接收者和发送的文件名
/// </summary>
/// <param name="strSendID">文件发送者</param>
/// <param name="strTargetID">文件接收者</param>
/// <param name="strFileName">文件名</param>
// [DispId(3)]
void FileSendOK(string strSendID, string strTargetID, string strFileName);
//取消文件发送时,记录发送者,接收者和发送的文件名取消文件发送时,记录发送者,接收者和发送的文件名#region 取消文件发送时,记录发送者,接收者和发送的文件名
/**/
/**/
/**/
/// <summary>
/// 取消文件发送时,记录发送者,接收者和发送的文件名
/// </summary>
/// <param name="strCancelID">取消文件发送者</param>
/// <param name="strTargetID">文件发送对方</param>
/// <param name="strFileName">文件名</param>
// [DispId(4)]
void FileSendCancel(string strCancelID, string strTargetID, string strFileName);
void say();
} // end interface INewsMonitor
public interface IMove
{
void say();
}
[Guid("CB5BDC81-93C1-11CF-8F20-00805F2CD064"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IObjectSafety
{
// methods
void GetInterfacceSafyOptions(
System.Int32 riid,
out System.Int32 pdwSupportedOptions,
out System.Int32 pdwEnabledOptions);
void SetInterfaceSafetyOptions(
System.Int32 riid,
System.Int32 dwOptionsSetMask,
System.Int32 dwEnabledOptions);
}
[Guid("1EA4DBF0-3C3B-11CF-810C-00AA00389B73")]
[ClassInterface(ClassInterfaceType.AutoDual)]
public partial class MyUserControl : UserControl, INewsMonitor, IObjectSafety, IMove
{
public void GetInterfacceSafyOptions(Int32 riid, out Int32 pdwSupportedOptions, out Int32 pdwEnabledOptions)
{
// TODO: 添加 WebCamControl.GetInterfacceSafyOptions 实现
pdwSupportedOptions = 1;
pdwEnabledOptions = 2;
}
public void SetInterfaceSafetyOptions(Int32 riid, Int32 dwOptionsSetMask, Int32 dwEnabledOptions)
{
// TODO: 添加 WebCamControl.SetInterfaceSafetyOptions 实现
}
public MyUserControl()
{
InitializeComponent();
}
public void say()
{
MessageBox.Show("aaaaaaaaaaaaa");
}
private void UserControl1_Load(object sender, EventArgs e)
{
}
private string filePath = string.Empty;
private string writeLine = string.Empty;
private void NewsMsg()
{
StreamWriter sw = null;
if (File.Exists(filePath))
{
sw = File.AppendText(filePath);
}
else
{
FileStream fs = File.Create(filePath);
sw = new StreamWriter(fs);
}
sw.WriteLine(writeLine);
sw.Close();
}
//送文件时,记录发送者,接收者和发送的文件名#region 发送文件时,记录发送者,接收者和发送的文件名
/**/
/// <summary>
/// 当发送文件时,记录发送者,接收者和发送的文件名
/// </summary>
/// <param name="strSendID">文件发送者</param>
/// <param name="strTargetID">文件接受者</param>
/// <param name="strFileName">文件名</param>
public void SendFile(string strSendID, string strTargetID, string strFileName)
{
filePath = @"c:MsgMonitorSendFile.txt";
writeLine = strSendID + " 向 " + strTargetID + " 发送 < " + strFileName + " > 文件";
NewsMsg();
}
//接收文件时,记录文件接收者,发送者和发送的文件名#region 接收文件时,记录文件接收者,发送者和发送的文件名
/**/
/// <summary>
/// 接受文件时,记录文件接收者,发送者和发送的文件名
/// </summary>
/// <param name="strReceiveID">文件接收者</param>
/// <param name="strSendID">文件发送者</param>
/// <param name="strFileName">文件名</param>
public void RecvFile(string strReceiveID, string strSendID, string strFileName)
{
filePath = @"c:MsgMonitorRecvFile.txt";
writeLine = strReceiveID + " 接收到 " + strSendID + " 发送的 < " + strFileName + " > 文件";
NewsMsg();
}
//文件发送成功后,记录发送者,接收者和发送的文件名#region 文件发送成功后,记录发送者,接收者和发送的文件名
/**/
/// <summary>
/// 文件发送成功后,记录发送者,接收者和发送的文件名
/// </summary>
/// <param name="strSendID">文件发送者</param>
/// <param name="strTargetID">文件接收者</param>
/// <param name="strFileName">文件名</param>
public void FileSendOK(string strSendID, string strTargetID, string strFileName)
{
filePath = @"c:MsgMonitorFileSendOK.txt";
writeLine = strSendID + " 已经成功向 " + strTargetID + " 发送 < " + strFileName + " > 文件";
NewsMsg();
}
//取消文件发送时,记录发送者,接收者和发送的文件名#region 取消文件发送时,记录发送者,接收者和发送的文件名
/**/
/// <summary>
/// 取消文件发送时,记录发送者,接收者和发送的文件名
/// </summary>
/// <param name="strCancelID">取消文件发送者</param>
/// <param name="strTargetID">文件发送对方</param>
/// <param name="strFileName">文件名</param>
public void FileSendCancel(string strCancelID, string strTargetID, string strFileName)
{
filePath = @"c:MsgMonitorFileSendCancel.txt";
writeLine = strCancelID + " 取消和 " + strTargetID + " 发送 < " + strFileName + " > 文件";
NewsMsg();
}
private void button1_Click(object sender, EventArgs e)
{
}
}
}
使用ole view查看progid:
使用regeditt查看progid:
javascript访问:
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
function makecall()
{
var myobj=new ActiveXObject("WindowsControlLibrary1.MyUserControl");
myobj.say();
alert(state);
}
</SCRIPT>
<input type="button" onclick="makecall()" />
- 大小: 206.5 KB
- 大小: 133.3 KB
分享到:
相关推荐
本文介绍了在javascript函数中调用com组件的属性和方法的技术。
COM组件中调用JavaScript函数详解及实例 要求是很简单的,即有COM组件A在IE中运行,使用JavaScript(JS)调用A的方法longCalc(),该方法是一个耗时的操作,要求通知IE当前的进度。这就要求使用回调函数,设其名称为...
C++开发的Com组件调用JavaScript函数,传递多个参数给JS函数,并从JS函数中获取返回值
JavaScript+OCX+COM组件,实现网页对客户端DLL的调用.
由于网页中很难实现进度条的添加,所以开发了一个com组件来实现网页中加载进度条控件
组件名称:ymPrompt消息提示组件 2.0 演示地址:http://bbs.okajax.com/demo/31/ =============================================================================== 组件说明:在web开发中,对于浏览器默认的消息...
首先创建一个COM组件,插入一个双接口Itest,在此接口上实现以下三个方法: STDMETHODIMP Ctest::test(void) //无输入输出参数 { // TODO: 在此添加实现代码 MessageBox(NULL,L"test",L"test",MB_OK); ...
步骤如下: 下载微软HTC组件:http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/samples/internet/behaviors/library/webservice/default.asp Web服务WSDL: <?xml version=”1.0″ encoding=...
• Visifire - Visifire 是用 Silverlight 做的,是一个开源可视化数据组件,使用Visifire你能创建动画 Silverlight 图表,支持 ASP, ASP.Net, PHP, JSP, ColdFusion, Ruby on Rails 或者 简单 HTML调用. ...
*就改了一下图片,把图片中的文字去掉,原版本的js调用代码没有加入 language='JavaScript' charset='gb2312' 导致utf-8显示不正常。如果这样调用还不正常的话,用EditPlus把jqqonline.js另存为utf-8格式直接调用JS...
aardio是专用于桌面软件快速开发的新一代混合型编程语言,aardio支持COM动态、静态接口、支持标准DLL组件,兼具动态、静态语言优势,兼容流行C系语法、Pascal语法,学习成本最低。 软件特色 一键发布为绿色软件。 ...
表格的渲染组件,demo请点击http://lovewebgames.com/jsmodule/table.html,git源码请点击https://github.com/tianxiangbing/table 如上图所示,功能基本包括常用表格中遇到的分页、搜索、删除、AJAX操作。由于是用...
精锐5 身份认证“组件”...不同于 COM 组件访问加密锁的方式,本产品提供的 Web 接口可用 JavaScript 调用,开发者不需要学习额外的技能即可完成功能集成,兼容市面主流的浏览器(IE、Chrome、360、Firefox 等)。
自从2015年谷歌浏览器升级到42版不支持NPAPI插件后,想要在网页中调用本地OCX或DLL是非常...插件可以用对COM组件支持比较好的C++及C#语言开发,非常方便,同时提供了一个安装升级插件的引擎,实现前端自动升级插件。
javascript写的windows资源管理器 解压运行scripting.html,... javascript方面主要就是程序设计与功能的实现,主要还是用到了Scripting组件。 CSS就随便写了一点,反正2个页面,不过用的都是常用的一些属性。
Replicator 使用这个Command 可以复制任何您选种的HTML组件,并可以设定要在 复制的组件中所插入的分割符。 Window maximizer 自动将当前的HTML文件最大化。 Preview Page 您是不是和我一样讨厌用Dreamweaver的...
【2】对应的网页里,一定要加入这么一句,<script type="javascript" src="http://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>,我是加在根文件里了 【3】用的时候就比较简单了,引入到VUE原型中,然后传参...
换句话说,ASP 程序包含“脚本语言程序”(Scripting Language) 、“嵌入HTML(Embedded HTML)”“ COM 组件调用”等3 个部分,前者可由VBScript,Jscript(微软版的JavaScript)、PerlScript、Python、REXX 等程序...