.net OCX 无法获取“****”控件的窗口句柄,不支持无窗口的ActiveX控 新解决方法

朋友找我帮原来的软件加一个小功能,程序是用VB.NET 写的。

软件需要与外部串口设备通信,一只带串口功能的压力表。

应该时间周期很急,所以串口部分我就直接用厂家提供的VB DEMO 写了个OCX控件给 .NET调用。

OCX 的制作过程参考我的这篇文章 http://my.oschina.net/caomenglong/blog/380029

软件制作完成用用VS做了一个安装包给朋友,安装包内已经包含了OCX控件。安装过程中会自动注册。

朋友去给客户安装,发现提示 『 无法获取“****”控件的窗口句柄,不支持无窗口的ActiveX控 』软件压根就打不开。

于是找到我紧急修复。

昨晚去他家里搞到夜里压根没有解决,无从下手,脑子也很晕晕的,白天可能是工作是太辛苦了。设备都带回家,今晚好好搞。

因为上面文章是我2年前做项目使用的OCX过程,我打包安装一切正常,不过我都是在XP上安装的。

百度搜结果,翻墙搜结果,很多类似的都说要关闭WIN7 DEP,类型这样的文章:http://blog.sina.com.cn/s/blog_6ca907a60100lxar.html

http://blog.csdn.net/hzfu007/article/details/6445162

我关闭DEP后 发现压根就没有用,网上好多人也反应关闭后没法用。

就这样各种折腾了近4小时精疲力尽。还是没办法解决问题。

我准备的2台电脑,一台开发机一切正常,另一台干净的WIN7 运行报错。实在没办法就尝试用VB做一个winfrom 引用那个ocx看行不行!!!于是到新电脑上跑VB程序!!!居然发现提示 串口控件不存在!!!!我勒了个去!!!

原来是我这个OCX文件 里面有串口组件,我VS打包的时候忘记打包VB 的串口组件 OCX文件了!!怪不得,.NET界面载入的时候加载自己做的OCX会报错,原来自己做的OCX中还有配套的OCX控件没一起打包。

于是对代码加入相应缺少的OCX ,问题终于解决了。

网上没有一个人这样提醒,希望我的经历能够给其他遇到问题的小伙伴有启发,不一定是DEP的问题哦!

2015-06-27 11:48  非常的累

时间: 2025-01-05 06:41:46

.net OCX 无法获取“****”控件的窗口句柄,不支持无窗口的ActiveX控 新解决方法的相关文章

.NET中TextBox控件设置ReadOnly=true后台取不到值三种解决方法

.NET中TextBox控件设置ReadOnly=true后台取不到值三种解决方法 当TextBox设置了ReadOnly=true后要是在前台为控件添加了值,后台是取不到的,值为空,多么郁闷的一个问题经过尝试,发现可以通过如下的方式解决这个问题.感兴趣的朋友可以了解下 当TextBox设置了ReadOnly="true" 后,要是在前台为控件添加了值,后台是取不到的,值为“空” 原理没想通,说不清楚微软是出于什么考虑的,不过有时是要我们能通过前台脚本来填充值,并不希望用户修改其控件内

VC++ CStatic控件背景透明且改变其文本时,文字重叠解决方法

最近在项目中将CStatic控件设置为背景透明且在一个定时器函数改变其文本,结果CStatic的文字重叠了.解决该问题的方案是:从CStatic类派生自己的静态文本控件. 其实设置背景透明,也就是在CStatic重画时,返回一个空刷子而已,所以改变文本并没有改变上次残留的背景,从而导致重叠现象. 为了解决这个问题,我们可以让父窗口重绘该区域,以下是我的解决方法: 1: 从CStatic继承一个类CStaticEx 2: 增加WM_CTLCOLOR消息反射(把很多事情留给父窗口窗口处理不是一件很好

.NET中TextBox控件设置ReadOnly=true后台取不到值 三种解决方法

position:static(静态定位) 当position属性定义为static时,可以将元素定义为静态位置,所谓静态位置就是各个元素在HTML文档流中应有的位置 podisition定位问题.所以当没有定义position属性时,并不说明该元素没有自己的位置,它会遵循默认显示为静态位置,在静态定位状态下无法通过坐标值(top,left,right,bottom)来改变它的位置. position:absolute(绝对定位) 当position属性定义为absolute时,元素会脱离文档流

重新想象 Windows 8.1 Store Apps (77) - 控件增强: 文本类控件的增强, 部分控件增加了 Header 属性和 HeaderTemplate 属性, 部分控件增加了 PlaceholderText 属性

[源码下载] 重新想象 Windows 8.1 Store Apps (77) - 控件增强: 文本类控件的增强, 部分控件增加了 Header 属性和 HeaderTemplate 属性, 部分控件增加了 PlaceholderText 属性 作者:webabcd介绍重新想象 Windows 8.1 Store Apps 之控件增强 文本类控件的增强 为一些控件增加了 Header 属性和 HeaderTemplate 属性 为一些控件增加了 PlaceholderText 属性 示例1.演示

七:理解控件的运行机制(例:基于CompositeControl命名空间的控件)

组合控件与WebControl控件的事件和属性相差不大组合控件,顾名思义就是把一些控件组合起来形成一个控件这个控件将包含这些控件称为他的子控件 CompositeControl类实现了INameContainer接口这样使得复合控件下的子控件都根据各自的层级关系生成唯一的客户端标识不至于产生重复的ID 组合控件比较重要的方法是:1.EnsureChildControls此方法判断属性ChildControlsCreated是否为true如果不是将执行下面的事件2.CreateChildContr

atitit. 浏览器插件 控件 applet 的部署,签名总结 浏览器 插件 控件 的签名安全机制o9o

atitit. 浏览器插件 控件   applet 的部署,签名总结 浏览器 插件 控件 的签名安全机制o9o 1. 服务器部署签名 1 2. 签名流程::生成密钥..导出cert正书,签名 1 3. jarsigner 错误: java.lang.IllegalArgumentException: MALFORMED 1 4. Jar的包装and签名的流程原理 2 5. 参考 2 1. 服务器部署签名 applet 的本地调试,可以使用调整java.policy的解决...虽然中间也能正式版使

控件包含代码块(即 ),因此无法修改控件集合。

第一种: 在使用主题的时候出现 控件包含代码块(即 <% ... %>),因此无法修改控件集合错误,原来错误的原因是: 控件包含代码块(即 <% ... %>),因此无法修改控件集合. 将这些代码去掉,相应的功能在代码中实现即可.<%=.....%>造成这个错误的原因是:在<head runat="server"></head>里面,使用了类似这样的代码, 把Head中使用的<%=.....%>的脚本放到body中

控件包含代码块(即 &lt;% ... %&gt;),因此无法修改控件集合

错误: “/”应用程序中的服务器错误. 控件包含代码块(即 <% ... %>),因此无法修改控件集合. 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.Web.HttpException: 控件包含代码块(即 <% ... %>),因此无法修改控件集合. 源错误: 执行当前 Web 请求期间生成了未经处理的异常.可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的

WPF用户控件实现类似WinForm的子窗口

1.WPF 介绍 .NET Framework 4 WPF 是下一代显示系统,用于生成Windows 客户端应用程序. 使用 WPF可以创建广泛的独立应用程序以及浏览器承载的应用程序. WPF 的核心是一个与分辨率无关并且基于向量的呈现引擎,旨在利用现代图形硬件的优势.WPF 通过一整套应用程序开发功能扩展了这个核心,这些功能包括Extensible Application Markup Language (XAML).控件.数据绑定.布局.2-D和3-D图形.动画.样式.模板.文档.媒体.文本