C#:引用 Windows shell 接口

2023-12-20

我对 C# 还很陌生,我正在尝试完成一个我一直在从事的小项目,该项目使用少量 C# 代码来协助开发 Windows 桌面小工具。基本上,我正在尝试实施IDesktopGadget接口,以便我可以使用运行小工具 http://msdn.microsoft.com/en-us/library/dd378390(VS.85).aspx method.

以下是迄今为止我从阅读有关类似接口的信息中得到的信息:

[ComImport]
[Guid("C1646BC4-F298-4F91-A204-EB2DD1709D1A")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
interface IDesktopGadget
{
    uint RunGadget([MarshalAs(UnmanagedType.LPWStr)] string gadgetPath);
}

不幸的是,当我尝试从中创建对象时出现错误:"Cannot create an instance of the abstract class or interface 'GadgetTask.IDesktopGadget'"

有人可以指出我正确的方向,同时帮助我理解我做错了什么吗?


实际上,您需要 DesktopGadget 对象的实现才能使用该界面。 MS 提供了一个标准 COM 对象来在 Windows 7 上执行此操作。您可以通过执行以下操作来创建实例:


Type t = Type.GetTypeFromCLSID(new Guid("924ccc1b-6562-4c85-8657-d177925222b6"));
IDesktopGadget dg = (IDesktopGadget)Activator.CreateInstance(t);  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#:引用 Windows shell 接口 的相关文章

随机推荐

  • 如何将 CSS 样式应用到元素?

    我是 CSS 新手 不是程序员 我了解什么是类 也了解什么是 div 但我似乎找不到的是如何在特定元素 例如我网站的 div 上设置样式 在你的 HTML 中 div class myClass Look at me div 在你的 CSS
  • 通过蓝牙将 OBDSim 连接到 Windows 上的 Torque

    我正在尝试在 Win7 上安装 OBDSim 但遇到了一些麻烦 我的最终目标是将 OBDSim 作为蓝牙 ELM327 OBDII 模拟器运行 并使用 Android 设备上的 Torque 应用程序连接到它 我在 youtube 上观看了
  • 如何调试从玉石打印对象

    如何调试从玉石打印对象 例如console log 在 JavaScript 中 您可以使用以下命令进行调试console log from jade像这样 div console log the object you want to lo
  • 如何在 Dart 中对末尾为空对象的 List 进行排序

    开始着手 Flutter 进行一个研究项目 我想知道如何对文件列表进行排序 事实上 我的程序有一个包含 4 个文件的列表 初始化如下 List
  • Python VLC - 获取位置轮询率解决方法

    我使用 Python VLC 在 pyqt 中构建自定义播放应用程序 我画了一个漂亮的自定义滑块来跟踪视频 但遇到了一些恼人的问题 无论我多久告诉我的滑块更新一次 它都会出现故障 每 1 4 秒左右跳跃一次 并且看起来不稳定 只是时间线 而
  • SVG textPath 上的希伯来语文本仅在 Safari 中反转

    将希伯来语文本放在 SVG textPath 上时 仅在 Safari 中会反转 macOS ventura 13 2 Safari 16 3 在 Firefox 和 Chrome 中都可以 不在路径上的文本总是可以的 此外 我可以使用 b
  • 防止使用 HTML 锚点播放 MP3 文件

    如何下载 MP3 链接而不是 在浏览器中 播放 我尝试将目标更改为空白 但这只是在新窗口中打开了播放器 您无法通过修改链接来做到这一点 您必须让提供该文件的 HTTP 服务器发送一个Content Type 应用程序 八位字节流 据推测 它
  • 将所有列中的值替换为该列的值

    如何用该列的编号替换所有列中的所有 1 我已经可以逐列执行此操作 输出 输出 3 1 3 3 输出 输出 4 1 4 4 输出 输出 5 1 5 5 etc 但我觉得自己像个傻瓜一样为每一个专栏写下这些内容 应该有一种方法可以同时完成所有这
  • 使用 IN 从 sqlite 数据库中删除

    我正在使用这样的记录 ID 从 sqlite 数据库中删除 这dirID是一个 ID 数组 Dim i As Integer 0 Dim conn As New SQLiteConnection Data Source DBPath Dim
  • Hadoop字数统计:接收以字母“c”开头的单词总数

    这是 Hadoop 字数统计 java map 和 reduce 源代码 在地图函数中 我已经可以输出所有以字母 c 开头的单词以及该单词出现的总次数 但我想做的只是输出总数以字母 c 开头的单词 但我在获取总数方面有点困难 任何帮助将不胜
  • 在 Clojure 中捕获系统/输出

    我正在使用一个将文本输出到控制台的 Java 包 我需要捕获字符串中的文本 但我不知道如何执行此操作 从查看 Clojure 文档看来 我所要做的就是将 java 调用包装在with out str但这对我不起作用 最小代码示例 如果我尝试
  • 写入没有段寄存器的地址

    我知道这段代码实际上会将数据写入 ds 100h mov 100h ax 但我怎样才能写入线性地址100H直接不使用任何段寄存器作为段基址 没有办法绕过段寄存器 每个内存访问都与某个段寄存器相关 如果要写入绝对地址 请首先向段寄存器加载适当
  • 多个 apache 根进程

    今天我注意到 当从我们的网络服务器发出请求时 速度相当慢 我开始研究它 发现了大量 root 拥有的 apache 进程 我不确定这实际上是导致事情变慢的原因 但无论如何 它看起来并不好 问题是 我不知道从这里做什么 如何找出为什么有这么多
  • WinRT 能够运行 Win 7 和 8 桌面应用程序吗?

    我读到了很多关于它的不同意见 但 WinRT 是像 Win 7 和 8 一样的实际桌面操作系统吗 您能够运行功能齐全的桌面应用程序和游戏吗 WinRT 不是桌面或操作系统 而是一个 API 就像传统的winapi一样 它与 winapi 有
  • 记录编译源代码的时间

    我有一个源文件 当我编译代码时 我希望可执行文件能够记住它的构建时间 我想知道是否可能 例如 int main time t t Time when this line is compiled print out value of t in
  • 使用 Jar 转换类,合并调试重复条目

    这是重复类的屏幕截图 https i stack imgur com ET0hk png当我开始集成 Digits 时 每次在 Marshmallow 之前的设备上构建应用程序时 我都必须在升级后升级 Crashlytics 我遇到了构建错
  • 尽管有可用内存,但出现 OutOfMemory 错误

    我看到一个很奇怪的问题 本质上 有时即使有大量内存 大位图内存分配也会失败 有很多帖子似乎都在问类似的问题 但它们都与前蜂窝 Android 有关 我的理解是图像现在分配在堆上 而不是一些外部内存 无论如何 请查看下面的日志 10 14 1
  • 如何调用Python类描述符对象上的方法?

    我创建了一个class String with get set 和一个方法to db 然而 当我这样做时name String 我做不到self name to db 因为它在召唤to db 关于返回的值 get 而不是对象 name cl
  • 一个标签中的不同字体

    有谁知道如何创建具有两种不同字体或至少两种不同字体大小的标签 Windows 窗体 我认为你应该覆盖默认标签onPaint方法并使用 Graphics 手动绘制多个文本 字体 看看这个example http ondotnet com pu
  • C#:引用 Windows shell 接口

    我对 C 还很陌生 我正在尝试完成一个我一直在从事的小项目 该项目使用少量 C 代码来协助开发 Windows 桌面小工具 基本上 我正在尝试实施IDesktopGadget接口 以便我可以使用运行小工具 http msdn microso