怎么知道activex的事件 ActiveX控件除了方法和属性外,还有事件,我在winform中引用了这个ocx控件,但没有显露事件,要知道ActiveX有哪些事件、以及这些事件的参数该如何知道? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 很不好意思,activex控件我也不太懂,写控件的人刚刚告诉我弹出的是消息,不是事件,不明白中,那消息的话请问有人知道怎么抓吗?还是根本就是一回事呢?控件是用VC写的 我是需要写一个C版的客户端,但是一部分连接必须通过ocx控件来做,当连接断开时需要弹出事件来提醒我,在web版本上已经做到类似的web上调用的代码如下<script language=javascript FOR=IPCamClient EVENT=FireSelect(camid,status) > window.status=camid+" "+status; window.selCamId=camid; window.camStatus=status; //window.alert("camid="+camid+" status="+status+"window.selCamId="+window.selCamId);</script><script language=javascript FOR=IPCamClient EVENT=FireSelect(camid,status) >如果我同样需要在C#抓出同样的东西需要怎么做呢? C#写的控件客户端需要公共语言运行时的支持。它实际上是COM互操作。1.你的类必须实现IObjectSafety接口,这样才不会被浏览器拦截,该接口.Net基础类库不存在的,是Com接口,你需要自己构造这个就口很简单,就2个方法: /// <summary> /// 该接口用于通知COM,所有实现了该接口的类都是安全的。 /// </summary> [Guid("CB5BDC81-93C1-11CF-8F20-00805F2CD064")] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] public interface IObjectSafety { 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不能改,COM就是靠这个Guid判断接口是IObjectSafety2.你的类必须有全局的Guid签名,并向COM公开3.你的类贴上COM属性:[System.Runtime.InteropServices.ClassInterface(ClassInterfaceType.AutoDispatch)]4.相应的程序集添加:[assembly:System.Security.AllowPartiallyTrustedCallers()]信息并向COM公开这样就可以了。你可以自由地用javascript操作你的C#类 7楼可能理解错了我的意思了,我是说我的是在winform下用的activex控件,而activex控件是用VC编写,但是我没有办法在控件的属性窗口:事件里面看到我想要调用的事件而别人已经在网页上实现了对windows系统消息的获取,就像我在6楼说的.现在我是想问有没有办法改VC代码,或者别的什么地方,能够获取到事件. 是应该在"控件名."里面能看到相应事件的吗?然后用+=绑定?是不是有可能是activex控件写的不够规范呢? 动态生成menu的问题 C# 遍历EXCEL表名,出现sheet1$_ 如何写一个同时插入两张表的sql语句 问个小问题,在线等,急! C#如何调用第三方的OCX控件?能举例说明吗 ?谢谢 调用动态库出现问题,PChar类型的值怎么转换到C#中??? FCKEDITR从WORD粘贴图片自动上传到服务器 ,急,求高手解决! 关于panel的点击事件. 有什么方法可以把界面上遗失的控件(实际存在)找回来? 请C#高手们帮帮忙 C#winform重载close的函数怎么写 请指教 又发现一处C#入门经典bug,也是关于属性的访问器的,汗,get set哪那么多问题啊
web上调用的代码如下
<script language=javascript FOR=IPCamClient EVENT=FireSelect(camid,status) >
window.status=camid+" "+status;
window.selCamId=camid;
window.camStatus=status;
//window.alert("camid="+camid+" status="+status+"window.selCamId="+window.selCamId);
</script><script language=javascript FOR=IPCamClient EVENT=FireSelect(camid,status) >
如果我同样需要在C#抓出同样的东西需要怎么做呢?
1.你的类必须实现IObjectSafety接口,这样才不会被浏览器拦截,该接口.Net基础类库不存在的,是Com接口,你需要自己构造
这个就口很简单,就2个方法:
/// <summary>
/// 该接口用于通知COM,所有实现了该接口的类都是安全的。
/// </summary>
[Guid("CB5BDC81-93C1-11CF-8F20-00805F2CD064")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IObjectSafety
{
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不能改,COM就是靠这个Guid判断接口是IObjectSafety2.你的类必须有全局的Guid签名,并向COM公开
3.你的类贴上COM属性:[System.Runtime.InteropServices.ClassInterface(ClassInterfaceType.AutoDispatch)]
4.相应的程序集添加:[assembly:System.Security.AllowPartiallyTrustedCallers()]信息并向COM公开
这样就可以了。你可以自由地用javascript操作你的C#类
但是我没有办法在控件的属性窗口:事件里面看到我想要调用的事件
而别人已经在网页上实现了对windows系统消息的获取,就像我在6楼说的.
现在我是想问有没有办法改VC代码,或者别的什么地方,能够获取到事件.