由于HTA应用程序托管在MSHTA.exe中,因此如何提供清单?另外我假设提供一个MSHTA.exe.manifest可能会破坏其他HTA应用程序?是否可以使用HTA应用程序免注册COM?
4
A
回答
3
在Vista +上,MSHTA.exe具有嵌入式清单,该清单优先于外部清单,因此您的建议不是选项。
在XP/2003上,是的,你的建议是可行的,尽管它会是一种糟糕的形式,就像在System32中删除文件来修改系统二进制文件的行为一样(特别是确保你在清单中的任何注册都是对象,你是唯一关心的人)。
适用于Win2003及以上版本的解决方案是使用Microsoft.Windows.ActCtx对象给出明确的清单引用来实例化对象。
例如:
var actCtx = WScript.CreateObject("Microsoft.Windows.ActCtx");
actCtx.Manifest = "myregfree.manifest";
var obj = actCtx.CreateObject("MyObj");
也许,如果必须在XP以及工作,你可能需要一个路径是解决方案的组合。
0
编辑:我的答案是错的,但我会离开这里,避免任何类似的错误答案:)
如果你的问题是你能访问COM对象不注册它的机器,那么我认为答案是暂定的。然而,你需要做的工作将是实质性的,并且意味着实现大多数开发工具为你提供的低级代码(Delphi,.NET,JAVA)。你需要直接与dll进行接口(就像你会正常的dll),查询它的接口并调用你的方法。
如果你有C,C++的知识,从这些语言访问COM的方式会给你一些指示。
对不起,我不能有任何帮助。
相关问题
- 1. 在.NET应用程序中使用免费的注册com
- 2. 是否有可能使用COM可见.NET类与免费注册COM?
- 3. 是否有人成功使用.NET组件免注册COM?
- 4. 是否可以“注册”iPhone应用程序名称?
- 5. EXE(进程外)COM服务器是否可以免注册激活?
- 6. 使用'RegisterWindowMessage'注册的消息是否可以取消注册?
- 7. 使用注册探测.NET程序集免费的COM/.NET互操作程序
- 8. 注册免费(Regfree)COM
- 9. 如何从VS安装程序注册COM +应用程序
- 10. 是否可以在不添加注册表条目的情况下为COM interop注册.NET程序集?
- 11. C#控制台应用程序是否可以在Azure AD中注册
- 12. 使用C2DM注册Android应用程序
- 13. 可以使用免注册的COM组件而无需在开发机器上注册它?
- 14. 应用程序注册
- 15. 注册iphone应用程序
- 16. 使用注册免费COM激活(基于COM互操作的)ActiveX控件com
- 17. 独立VB.NET应用免注册COM - 复杂案例
- 18. 注册COM +应用程序代理时出错
- 19. 通过注册表而不是TLB注册应用程序
- 20. 我可以使用regasm将.Net COM注册为SingleUse
- 21. 从Powerbuilder应用程序调用.Net COM程序集(无需注册)
- 22. Microsoft.SmartDevice.Connectivity是否已正确注册COM?
- 23. 扫描COM引用以帮助生成免注册的COM清单
- 24. 是否可以预热应用程序?
- 25. 是否可以制作应用程序
- 26. 是否可以注册这样的事件处理程序?
- 27. 可以在VB6编译过程中使用.local文件,以避免注册COM ocx和dll文件
- 28. 是否有可能将.net程序集注册为COM而没有强名称?
- 29. 使用.NET应用程序的多平台无需注册的COM
- 30. 使用mfc42.dll作为免费注册COM?
当然,我可以做旧时尚“LoadLibrary”/“GetProcAddress”,但这是一个HTA应用程序...我不明白我将如何从HTA进行Win32 API调用? – 2009-02-05 21:33:21
问题是有关注册自由COM这是一个功能添加到操作系统。通过这个特性,COM调用是透明的,不需要LoadLibrary等。话虽如此,该功能依赖于将清单与客户端应用相关联,所以我认为您无法通过HTA进行清除。 – DSO 2009-02-05 21:40:43