问题标签 [tstcon32]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
debugging - ActiveX 控件的调试输出
我正在开发一个 ActiveX 控件,我想向 tstcon32 中的控制台区域抛出一些调试输出,就像其他控件一样。什么系统调用正在这样做?
标准输出似乎不是它
winforms - ActiveX 控件在一个主机容器中变为空白,但在其他容器中不变为空白
我需要使用 activeX 为遗留应用程序创建插件。我正在使用 C#,以便我可以共享几个相关独立产品的代码库。
当我在 SDK 的测试容器 (TstCon32.exe) 中托管控件时,一切正常。问题是,当我第一次尝试在目标应用程序中加载它时,如果我更改背景颜色控制其他东西背景保持我指定的相同颜色,但所有控件仍被控制灰色覆盖(来自容器应用程序?)。单击其他控件将导致它们绘制,调整控件大小将导致所有内容重新绘制。在初始消隐后,控制功能正常,直到下一次创建副本。
.net - activeX (COM) 控件在被父级关闭时进行清理的正确方法是什么?
我的 .net 控件在打包以供 activeX 使用时没有得到正确清理时遇到问题。
默认行为使 SDK 的测试容器应用程序 (TstCon32.exe) 在我尝试关闭它时作为无 GUI 进程运行。
我最初通过谷歌找到的解决方法是覆盖 WndProc 并Environment.Exit(0)
手动调用。这确实让 TstCon32.exe 完全关闭;但是它破坏了我需要托管控件的应用程序。
该应用程序是 MDI 并且当包含控件的页面关闭时正在发送 WM_DESTROY,此时Environment.Exit(0)
调用正在吹走整个应用程序。我已经尝试过Application.Exit()
作为替代方案,但这使得 TstCon32 仍然不可见地运行。
c++ - 如何将对 ole32.dll 的调用重定向到我自己的代理 DLL?
我正在尝试在我开始的某个进程中检测对CoCreateInstance的所有调用(理想情况下,我也能够检测到子进程中的调用)。
为了实现这一点,我在 Windows 7 上使用 Microsoft Visual Studio 2008,创建了一个代理 DLL,它转发标准ole32.dll
库中除一个调用之外的所有调用,如各种文章中所述,例如
Intercepted: Windows Hacking via DLL Redirection。生成的 DLL 看起来不错,但我无法让现有程序(我使用标准ActiveX 控件测试容器 (tstcon32.exe)作为测试应用程序)获取我的代理 DLL。无论我做什么,程序似乎总是C:\Windows\SysWow64\ole32.dll
根据Process Explorer来启动。到目前为止,我尝试了几件事:
- 将包含我的代理 DLL 的目录添加到
PATH
然后调用程序;似乎没有任何效果。 - 将我的代理 DLL 复制到与调用程序相同的目录中;没运气。
- 如动态链接库重定向
.local
文章中所述,在与调用程序相同的目录中创建一个文件,并将我的代理 DLL 放入同一目录 - 也不起作用。但是后来,我读到这在更新的 Windows 版本上停止工作。此外,根据注册表设置,它是“已知 DLL”,因此基于 - 的重定向可能无论如何都不起作用。ole32.dll
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs
.local
- 使用基于清单的重定向,如使用清单问题的 DLL 重定向中所述,但这似乎也没有任何效果。但是,这种方法似乎很重要,所以我很可能做错了什么。
有没有人有将调用重定向到标准 DLL(例如ole32.dll
使用存根 DLL)的经验?您是如何强制应用程序获取您的存根 DLL 的?
java - Java => ActiveX component = Swing with no interaction
I'm creating a Java bean component and then generate it to ActiveX dll like in this tutorial
It is a Swing
panel
with couple JButton
s
but when I test it in tstcon32.exe I can't actually press any button (JButton). It's like a picture.
What's wrong?
Thank you
upd: tried with AWT (java.awt.Panel, java.awt.Button) - same story. You see it, but you can't press the buttons
c# - How to create an ActiveX control in C#?
I am not able to create a functioning ActiveX control in C#; I have tried following tutorials to do so without success.
I create a sample Class Library project which includes this code:
I then did the following steps:
- Properties => Application => Assembly Information => Make Assembly COM-visible
- Build => Register for COM interop TRUE (checked)
- Make Strong name for assembly (signing)
- Build the project
regasm MyDll.dll /tlb /codebase
Can't see
Prisoner.PrisonerControl
in tstcon32 =(
My OS is WinXP x86.
UPD: it works from VBScript:
but it is not visible in tstcon32.
c# - 如何使用使用它的 .NET 应用程序的进程来调试 ActiveX 控件?
我使用 VS2008 在本机 C++ 中编写了一个 ActiveX 控件 (OCX)。
当我附加到 Microsoft ActiveX 控件测试容器 (TstCon32.exe) 的线程和我自己的引用该控件的本机 cpp 应用程序时,我可以正确调试它。
但是,我无法通过将其附加到引用控件的 .NET winform 应用程序的线程来调试它MyCtrlNameLib.dll
和AxMyCtrlNameLib.dll
。它在我的断点上显示以下消息:
当前不会命中断点。没有为此文档加载任何符号。信息
我想知道是否有办法调试 .NET Winform 应用程序引用的 ActiveX 控件。
我认为问题是我的 .NET 应用程序没有加载 MyCtrlName.ocx,因此没有添加 MyCtrlName.pdb。它改为加载 InterOp.MyCtrlNameLib.dll 和 AxInterOp.MyCtrlNameLib.dll。
visual-c++ - 成功注册的 COM DLL 未在 Visual Studio 的“插入 ActiveX 控件”对话框中列出
我使用 ATL 项目(复合对象)创建了一个 COM DLL,该项目在对话框中基本上有一个树控件(它是 VS 工具箱的一部分)。
注册后,我尝试使用 Visual Studio 的“插入 ActiveX 控件”对话框的标准方法将其插入基于对话框的 MFC/ATL 应用程序中。
但这里的问题是,即使在成功注册之后,它也没有在“插入 ActiveX 控件”对话框中列出。所以我无法将它插入到容器对话框中。
我尝试过并且有效的替代方案:
在 Microsoft 提供的用于测试此类控件的工具中,即“ActiveX 控件测试容器”(TSTCON32.exe),我的 COM DLL 被正确列出并且我能够使用它。
我尝试过但无效的替代方案:
- 取消注册 DLL 并重新注册。
- 重新启动电脑。
因此,热烈感谢这方面的任何帮助。
更多细节:
- “.idl”和“.rgs”文件看起来都正确。
- 如果需要,我会分享我的项目。