问题标签 [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.

0 投票
2 回答
1237 浏览

javascript - JavaScript - 协议处理程序已注册,但从 Windows 注册表读取失败

我做了以下工作:

1)在Windows 7中:在注册表下:HKEY_CLASSES_ROOT\PROTOCOLS\Handler 我有我的自定义协议调用:(stackoverflow在注册表中以类似的方式复制其他协议mailtoftp

关注

2)在IE中打开示例:http: //jsfiddle.net/L528u/

3)点击IE按钮检测协议时:stackoverflow失败

我总是收到警报框:“未知协议”,但是当我尝试检测诸如 ftp、mailto 之类的协议时,它可以工作

问题:谁能告诉我注册表项中缺少什么来激活新协议?“stackoverflow”(ftp、mailto 工作但 stackoverflow 不工作的地方)

0 投票
1 回答
2638 浏览

winapi - 没有 UAC 提示,任务管理器如何提升?

这一直在我的脑海里。我可以通过按Ctrl++打开任务管理器,在第二个选项卡(进程)上,我可以轻松地按Shift-显示所有用户的进程以提升我的任务管理器,而无需任何提示。瞧,我有一个强大的工具可以玩。我一直找不到任何文件来解释这一点,我很好奇这一壮举是如何实现的;因为按钮实际上应该要求提示但没有。EscAlt + S

0 投票
0 回答
172 浏览

vba - 此配置的 WCF 服务名字对象是什么?

我有以下应用程序配置文件,使用我的 ip 作为基本地址:

我在 VBA 中编写了一个相应的基于 wsdl 的名字对象字符串:

其中 wsdlText 是 wsdl 服务的字符串表示形式。从 http://{IP-ADDRESS}:{PORT}/?singleWsdl 获取。但它似乎不起作用,我不知道为什么。我总是得到错误:

0 投票
0 回答
145 浏览

c# - 具有自定义访问权限的 C# 进程外 COM 服务器

我需要在 C# 中实现一个 out-ofproc 服务器。基本的服务器部分已经完成,progid 可以像这样访问服务器:“someNamespace.someClassname”。

但现在我想要这样的东西:“progid:Application(set=somevalue)”。

有没有办法在 C# 中做到这一点?

到目前为止,我注册了一个工厂,这个工厂返回了 com 对象。

这就是工厂中的 CreateInstance 方法。

信息:有一个已经实现的 c++ in-proc com 服务器,它正在创建一个对象并将其注册到运行对象表中。然后,此服务器向客户端返回一个名字对象。是否有可能在 C# 中完成这个?

0 投票
2 回答
905 浏览

c# - 在 C# 中使用分区的远程服务器上的 COM+ 激活

我想访问远程服务器上的分区 COM+ 应用程序。我试过这个:

因此,当我们在(远程)机器上本地时,分区正在使用名字对象和 Marshal.BindToMoniker。但是当我尝试从我的机​​器远程执行相同操作时,我从 Marshal.BindToMoniker 收到一个错误,即 Partitons 未启用。因为在我的机器上没有启用分区。

如何使用 Marshal.BindToMoniker 在远程服务器上运行。它是我可以添加到名字字符串的东西吗?

我的问题与此非常相似: COM+ object activation in a different partition

0 投票
1 回答
103 浏览

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# 中完成!

0 投票
1 回答
1979 浏览

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 调用,就可以将这些实例转换为接口。

关于如何从这里开始的任何想法?

0 投票
0 回答
528 浏览

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 时,它就像一个魅力。

0 投票
2 回答
1033 浏览

win32com - 连接到 SAP GUI 时 win32com.client.GetObject 出错

亲爱的,首先这是我第一次在 Stackoverflow 上提问,如果我没有遵循正确的方法,请原谅我。

当我遇到 win32com 的问题时,我恳请您的帮助。我正在尝试连接到 SAP GUI 以自动执行某些任务。

我收到以下错误(直到昨天一切正常..):

我找到了一些关于这个问题的文档,建议使用 pythoncom.CoInitialize():

使用带有多线程的 win32com

但是我不知道如何为我的目的使用此功能。

谢谢您的帮助!

0 投票
1 回答
94 浏览

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 接口?