解决 无法获取“”控件的窗口句柄。不支持无窗口的 ActiveX 控件
2014-03-25 10:40
176 查看
原文链接:http://yanghao831207.blog.163.com/blog/static/302198620116120495647/
在win7 下面调用ActiveX 出现如题错误。xp下测试正常。
编译环境: VS2008
编程语言:CSharp
系统版本:Windows7
OCX控件:无窗口的OCX控件
根据微软官方的说法,导致这个错误是由于Windows的保护机制,在编译后的exe的PE头部,有一个DEP(Data Execution Prevention)的功能。需要将这个功能关闭,就能正常运行了,试了试成功了。
下面是如何打开 DEP 的方法:
关闭Wind XP/Vista/Win7的DEP数据执行保护汇总
数据执行保护 (DEP) 是一种Windows安全机制,从Windows版本顺序上看是从Windows XP SP2开始引入,通过监视程序以确保它们使用的系统内存是安全的,帮助防止操作系统受到病毒和其他安全威胁的破坏。这个功能从设计上来讲是非常不错的,可以保护系统安全,但同时也可能会影响某些程序甚至整个系统的正常运行。甚至在日常的操作中带来很大麻烦,因为很多用户根本不知道如何取舍或关闭。看来DEP功能还是有诸多的完善工作需要完成,天缘本文就来综合一下DEP在常见几种操作系统下的开启和关闭方法做个汇总。
一、Windows XP下开始/关闭数据执行保护(DEP)的方法
XP模式下开启和关闭DEP有两种方法,一种是部分开启/关闭,另一种是长期开启/关闭。
第一种方法是为了方便于用户倾向于使用DEP功能,但又不想整体关闭,由于DEP功能上的欠缺可能会引起某些程序的非正常运行甚至崩溃现象时,可以通过以下方法进行设置:在桌面“我的电脑”点击鼠标左键——属性——高级——性能设置选项,即可看到下图:
针对某些程序关闭DEP保护,只需要点击上图中的“为下列程序之外的所有程序启动DEP”,然后点击添加按钮,找到您所信任的程序执行文件,添加即可,然后重启计算机即可生效。
第二种方法,全部关闭DEP保护功能,可以在上图中,点击关闭DEP(不推荐),然后重新启动计算机即可。也可以通过直接修改Boot.ini文件达到彻底关闭数据执行保护的目的,在 WinXP SP2/SP3系统目录下找到Boot.ini文件。有这么一行(其他驱动器类似):
......="Microsoft Windows XP Professional"=OPTIN /FASTDETECT /USEPMTIMER /noexecute
修改NoExecute参数为NoExecute=AlwaysOff,然后保存即可,相当关闭DEP功能和EVP和EDB。实际上,在上述第一种方法中如何修改关闭DEP选项,系统会自动修改boot.ini文件的启动项,实现结果相同。
二、Windows Vista下开始/关闭数据执行保护(DEP)的方法
在Vista下关闭DEP方法也很简单,只需要按照以下步骤操作即可:
1、新建一个文本文件mod.txt,然后输入:
bcdedit.exe/set {current} nx AlwaysOff
pause
2、保存后,再重命名为bat文件mod.bat;
3、然后在文件上鼠标右键以管理员身份运行即可,看到运行结果。
4、关闭该命令运行窗口,然后重新启动计算机即可生效
另外,对于没有管理员权限的用户执行修改DEP数据保护设置可能会出现下图提示:
避免方法,请提权后或采用本文描述方法执行。
三、Windows 7下开始/关闭数据执行保护(DEP)的方法
方法同Vista的修改方法。
补充:
1、该方法同样适用于Windows Server 2008,操作方法相同。
2、如果要开启DEP数据保护,只需要把AlwaysOff改成AlwaysOn即可
名词解释:
DEP——为微软的软件上层协调模块,协助CPU执行数据保护,为Data Excute Protection缩写
EVP——AMD CPU的防病毒技术,为Ehanced Virus Protection缩写
EDB——Intel CPU的防病毒技术,为Excute Disable Bit缩写
在win7 下面调用ActiveX 出现如题错误。xp下测试正常。
编译环境: VS2008
编程语言:CSharp
系统版本:Windows7
OCX控件:无窗口的OCX控件
根据微软官方的说法,导致这个错误是由于Windows的保护机制,在编译后的exe的PE头部,有一个DEP(Data Execution Prevention)的功能。需要将这个功能关闭,就能正常运行了,试了试成功了。
下面是如何打开 DEP 的方法:
关闭Wind XP/Vista/Win7的DEP数据执行保护汇总
数据执行保护 (DEP) 是一种Windows安全机制,从Windows版本顺序上看是从Windows XP SP2开始引入,通过监视程序以确保它们使用的系统内存是安全的,帮助防止操作系统受到病毒和其他安全威胁的破坏。这个功能从设计上来讲是非常不错的,可以保护系统安全,但同时也可能会影响某些程序甚至整个系统的正常运行。甚至在日常的操作中带来很大麻烦,因为很多用户根本不知道如何取舍或关闭。看来DEP功能还是有诸多的完善工作需要完成,天缘本文就来综合一下DEP在常见几种操作系统下的开启和关闭方法做个汇总。
一、Windows XP下开始/关闭数据执行保护(DEP)的方法
XP模式下开启和关闭DEP有两种方法,一种是部分开启/关闭,另一种是长期开启/关闭。
第一种方法是为了方便于用户倾向于使用DEP功能,但又不想整体关闭,由于DEP功能上的欠缺可能会引起某些程序的非正常运行甚至崩溃现象时,可以通过以下方法进行设置:在桌面“我的电脑”点击鼠标左键——属性——高级——性能设置选项,即可看到下图:
针对某些程序关闭DEP保护,只需要点击上图中的“为下列程序之外的所有程序启动DEP”,然后点击添加按钮,找到您所信任的程序执行文件,添加即可,然后重启计算机即可生效。
第二种方法,全部关闭DEP保护功能,可以在上图中,点击关闭DEP(不推荐),然后重新启动计算机即可。也可以通过直接修改Boot.ini文件达到彻底关闭数据执行保护的目的,在 WinXP SP2/SP3系统目录下找到Boot.ini文件。有这么一行(其他驱动器类似):
......="Microsoft Windows XP Professional"=OPTIN /FASTDETECT /USEPMTIMER /noexecute
修改NoExecute参数为NoExecute=AlwaysOff,然后保存即可,相当关闭DEP功能和EVP和EDB。实际上,在上述第一种方法中如何修改关闭DEP选项,系统会自动修改boot.ini文件的启动项,实现结果相同。
二、Windows Vista下开始/关闭数据执行保护(DEP)的方法
在Vista下关闭DEP方法也很简单,只需要按照以下步骤操作即可:
1、新建一个文本文件mod.txt,然后输入:
bcdedit.exe/set {current} nx AlwaysOff
pause
2、保存后,再重命名为bat文件mod.bat;
3、然后在文件上鼠标右键以管理员身份运行即可,看到运行结果。
4、关闭该命令运行窗口,然后重新启动计算机即可生效
另外,对于没有管理员权限的用户执行修改DEP数据保护设置可能会出现下图提示:
避免方法,请提权后或采用本文描述方法执行。
三、Windows 7下开始/关闭数据执行保护(DEP)的方法
方法同Vista的修改方法。
补充:
1、该方法同样适用于Windows Server 2008,操作方法相同。
2、如果要开启DEP数据保护,只需要把AlwaysOff改成AlwaysOn即可
名词解释:
DEP——为微软的软件上层协调模块,协助CPU执行数据保护,为Data Excute Protection缩写
EVP——AMD CPU的防病毒技术,为Ehanced Virus Protection缩写
EDB——Intel CPU的防病毒技术,为Excute Disable Bit缩写
相关文章推荐
- 解决 无法获取“”控件的窗口句柄。不支持无窗口的 ActiveX 控件
- VMware vSphere Client 解决 无法获取“”控件的窗口句柄。不支持无窗口的 ActiveX 控件
- Windows 7 C# OCX 无法获取“****”控件的窗口句柄,不支持无窗口的ActiveX控件的解决办法
- .net OCX 无法获取“****”控件的窗口句柄,不支持无窗口的ActiveX控 新解决方法
- MapView Control 无法获取窗口控件句柄解决方法
- 获取当前具有输入焦点控件的窗口句柄
- 安装SQL Server出现在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke的错误解决办法
- Flash Player ActiveX 控件无法注册的解决方法汇编
- ocx控件获取使用App的窗口句柄
- C#中动态创建控件 出现创建窗口句柄出错问题解决。
- asp.net中的服务器端控件 textbox 设为只读属性后无法获取JS给其赋的值解决办法
- vs不支持通过afxgetmainwnd()获取窗口句柄(转)
- 在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke 解决办法
- 获取活动窗口输入焦点控件句柄的方法
- 在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke 解决
- CodedUI Test 测试WPF程序,无法获取控件属性值的解决方法
- IE7,IE8,上传文件控件input file和asp.net FileUpload控件无法获取完整路径的解决办法
- VM无法获取 vmci 驱动程序版本句柄无效解决办法
- “当前线程不在单线程单元中,因此无法实例化 ActiveX 控件……” 的解决办法
- 解决asp.net FileUpload控件无法获取完整路径的问题 - 无序修改浏览器参数