问题标签 [moniker]
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.
javascript - JavaScript - 协议处理程序已注册,但从 Windows 注册表读取失败
我做了以下工作:
1)在Windows 7中:在注册表下:HKEY_CLASSES_ROOT\PROTOCOLS\Handler
我有我的自定义协议调用:(stackoverflow
在注册表中以类似的方式复制其他协议mailto
或ftp
)
2)在IE中打开示例:http: //jsfiddle.net/L528u/
3)点击IE按钮检测协议时:stackoverflow失败
我总是收到警报框:“未知协议”,但是当我尝试检测诸如 ftp、mailto 之类的协议时,它可以工作
问题:谁能告诉我注册表项中缺少什么来激活新协议?“stackoverflow”(ftp、mailto 工作但 stackoverflow 不工作的地方)
winapi - 没有 UAC 提示,任务管理器如何提升?
这一直在我的脑海里。我可以通过按Ctrl++打开任务管理器,在第二个选项卡(进程)上,我可以轻松地按Shift-显示所有用户的进程以提升我的任务管理器,而无需任何提示。瞧,我有一个强大的工具可以玩。我一直找不到任何文件来解释这一点,我很好奇这一壮举是如何实现的;因为按钮实际上应该要求提示但没有。EscAlt + S
vba - 此配置的 WCF 服务名字对象是什么?
我有以下应用程序配置文件,使用我的 ip 作为基本地址:
我在 VBA 中编写了一个相应的基于 wsdl 的名字对象字符串:
其中 wsdlText 是 wsdl 服务的字符串表示形式。从 http://{IP-ADDRESS}:{PORT}/?singleWsdl 获取。但它似乎不起作用,我不知道为什么。我总是得到错误:
c# - 具有自定义访问权限的 C# 进程外 COM 服务器
我需要在 C# 中实现一个 out-ofproc 服务器。基本的服务器部分已经完成,progid 可以像这样访问服务器:“someNamespace.someClassname”。
但现在我想要这样的东西:“progid:Application(set=somevalue)”。
有没有办法在 C# 中做到这一点?
到目前为止,我注册了一个工厂,这个工厂返回了 com 对象。
这就是工厂中的 CreateInstance 方法。
信息:有一个已经实现的 c++ in-proc com 服务器,它正在创建一个对象并将其注册到运行对象表中。然后,此服务器向客户端返回一个名字对象。是否有可能在 C# 中完成这个?
c# - 在 C# 中使用分区的远程服务器上的 COM+ 激活
我想访问远程服务器上的分区 COM+ 应用程序。我试过这个:
因此,当我们在(远程)机器上本地时,分区正在使用名字对象和 Marshal.BindToMoniker。但是当我尝试从我的机器远程执行相同操作时,我从 Marshal.BindToMoniker 收到一个错误,即 Partitons 未启用。因为在我的机器上没有启用分区。
如何使用 Marshal.BindToMoniker 在远程服务器上运行。它是我可以添加到名字字符串的东西吗?
我的问题与此非常相似: COM+ object activation in a different partition
c# - 如何修复编译错误“System.ServiceModel.ComIntegration.IParseDisplayName”由于其保护级别而无法访问
我正在尝试在 C# 中实现一个 COM 组件,该组件可以使用 GetObject 调用并提供自定义字符串。两个组件已经使用 .WMIGetObject("winmgmts:\.\root\cimv2")
和 LDAP 使用GetObject("LDAP://example.com/OU=Users,DC=asp,DC=rippe,DC=com")
. 我被这种自定义激活语法所吸引,并想复制它。
看来我必须实现 Class Com Interface IParseDisplayName。
所以我试图在 C# 中做到这一点,我有一个简单的 COM 对象,可以进行简单的计算。我被困在尝试实现 IParseDisplayName,我收到以下错误
现在我已经看到其他带有这些错误的 C# 问题,它们是通过升级对 public 的访问来解决的访问修饰符问题。但是我不控制这个接口,因为它是一个系统接口。
请问我该如何解决?这是目前的代码。
编辑:另外,我认为 Windows Communication Foundation (WCF) 也使用相同的机制,这里是一个链接,这里是一个代码片段。如果为真,那么这证明它可以在 C# 中完成!
c# - C#:从运行对象表中获取 COM 对象
我正在开发一个使用第三方 COM 服务器 API 的项目。COM 服务器是我无法控制的本地服务器(进程外 exe)。
我正在尝试从 runnin 对象表访问 COM 对象,以在从应用程序的每个实例开始的几个 COM 对象实例之间进行选择:
如果我启动目标应用程序的两个实例,ROT 转储会显示相应 COM 对象(此处命名为 IApplication)的两个实例,因为 GetDisplayName 显示在注册表中注册的接口 IApplication 的正确 clsid。
问题是我从 Rot.GetObject 获得的对象被描述为 System.__ComObject 并且不能强制转换为 IApplication(InvalidCastException,因为 QueryInterface 因 E_NOINTERFACE 失败),即使它们的绰号描述了正确的 clsid ...
我尝试将它以编程方式投射到我的项目中的每个可用类型,只是为了看看,但唯一的成功是将它投射到 System.__ComObject...
我也尝试使用 IMoniker.BindToObject 而不是 Rot.GetObject 但这次,当我提供相应的接口 GUID 时,我得到了 FileNotFound 异常。当我为 IUnknown 提供 riid 时,BindToObject 有效,但它给了我一个 System.__ComObject 我无法转换(回到第一方!)。
有关信息,在 ROT 转储中,我还可以显示与目标应用程序中打开的项目相对应的文件名字对象,但我也无法从中创建 COM 对象。
任何人都知道如何从 ROT 中正确检索对象?
感谢和问候。
编辑 :
几天后,对这个问题有了新的认识,我发现名字对象显示名称中的 CLSID 与我想要的不完全相同,但有两个数字(indexof 测试结果是错误的)。
仔细阅读 clsid 后发现,名字对象的显示名称中的 clsid 是 IApplication 的 coclass 的 clsid,而不是 IApplication 的 clsid。
我尝试将对象转换为“ApplicationClass”(前面提到的 coclass),但这给了我一个例外。我得到的附加信息(法语)可以翻译如下:不可能将 __ComObject 包装器实例转换为另一个类,但只要底层 com 组件支持接口 IID 的 QueryInterface 调用,就可以将这些实例转换为接口。
关于如何从这里开始的任何想法?
win-universal-app - 多目标项目引发目标“_GetRestoreSettingsPerFramework”不存在
我正在尝试将我现有的 C# 项目之一更新为新的 Microsoft.NET.Sdk 项目结构。该解决方案由 net45、netstandard1.0 和 uap10.0 项目组成。
当我从 NuGet 包管理器控制台运行“ dotnet build ValueConverters.sln ”时,我收到以下错误:错误 MSB4057:项目中不存在目标“_GetRestoreSettingsPerFramework”。
当我使用 MSBUILD 在 Visual Studio 中构建相同的 ValueConverters.sln 解决方案时,一切正常。
可以在这里找到解决方案: https ://github.com/thomasgalliker/ValueConverters.NET/tree/develop
我究竟做错了什么?当我从 TargetFrameworks 中删除 uap10.0 时,它就像一个魅力。
win32com - 连接到 SAP GUI 时 win32com.client.GetObject 出错
亲爱的,首先这是我第一次在 Stackoverflow 上提问,如果我没有遵循正确的方法,请原谅我。
当我遇到 win32com 的问题时,我恳请您的帮助。我正在尝试连接到 SAP GUI 以自动执行某些任务。
我收到以下错误(直到昨天一切正常..):
我找到了一些关于这个问题的文档,建议使用 pythoncom.CoInitialize():
但是我不知道如何为我的目的使用此功能。
谢谢您的帮助!
c++ - 获取不带类别的 DirectShow 过滤器的显示名称
我想获取 VMR-7 过滤器的显示名称(CLSID_VideoMixingRenderer, {B87BEB7B-8D29-423f-AE4D-6582C10175AC}).
通常,我会使用CoCreateInstance (CLSID_SystemDeviceEnum) + CreateClassEnumerator (CLSID_ActiveMovieCategories)
,然后使用名字对象枚举来查找过滤器的名字对象并使用名字对象的 GetDisplayName 方法。这适用于例如“视频渲染器”的情况( CLSID_VideoRenderer, {70E102B0-5556-11CE-97C0-00AA0055595A})
--它返回一个显示名称"@device:sw:{083863F1-70DE-11D0-BD40-00A0C911CE86}\{70E102B0-5556-11CE-97C0-00AA0055595A}"
。
问题是,与“Video Renderer”不同,VMR-7 没有分配到任何类别。在 Windows XP 上,CLSID_VideoMixingRenderer 仅作为单独的键存在于注册表中,它既不是 CLSID_LegacyAmFilterCategory 的子键,也不包含在作为 CLSID_ActiveMovieCategories 子键的任何类别中,也不包含在我能想到的任何其他类别中,也不是链接到注册表中的任何其他 CLSID。系统设备枚举器从不返回 VMR-7 的任何名字对象。过滤器本身存在并且有效(实际上,它是 Windows XP 下的主要视频渲染器)。我可以用
将 VMR-7 添加到 filtergraph。但是,如果我无法获得它的绰号,我该如何获得它的显示名称呢?我试图让 VMR-7 的绰号通过
和
但得到“无接口”作为响应,好像没有实现 IMoniker 接口。另一个问题是,允许名字对象的过滤器是否也应该提供 IMoniker 接口?