用于文件关联的 dde ​​的最佳 .net 替代方案是什么?

2023-12-09

我有一个 MDI Windows 窗体应用程序 (.net 2008),它允许用户将各种文件类型与该应用程序关联。我目前使用类似这样的注册表项来执行此操作,这会导致应用程序通过命令行加载和访问文件名:

Registry.SetValue(appKey & "\shell\open\command", "", """" & _
  System.Windows.Forms.Application.ExecutablePath & """ ""%1""")

在应用程序的 .net 之前版本中,我使用了 DDE(注册表中的 ddeexec)。如果在 Windows 资源管理器中双击文件时正在执行应用程序的实例,则它将打开该文件,而无需启动应用程序的新实例。

既然 Microsoft 已弃用 DDE,那么当在资源管理器中双击文件时,执行 MDI 应用程序在 .net 中打开其他文件(而不是启动应用程序的新实例)的最佳方式是什么?


理想情况下,您可以使用常规文件关联技术(doc),以及某种形式的进程间通信,以组织程序如何处理后续启动。

例如,当您的程序启动时,检查另一个实例是否已打开。如果是这样,请将任何参数数据传递给现有实例,然后退出。然后现有实例适当地处理数据。

Here (link)是一个很好的答案,可以帮助您开始这一点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用于文件关联的 dde ​​的最佳 .net 替代方案是什么? 的相关文章

随机推荐

  • EPOLLET 的用例是什么? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 epoll在边缘触发模式下是一个奇怪的野兽 它要求进程跟踪每个受监控 FD 的最后响应是什么 它要求进程必须处理所报告的每个事件 否则我们可能会认为 FD 没有报告任何内容 而实际上它已被
  • Eclipse 高亮匹配括号

    我看到很多关于匹配括号的帖子 但不太喜欢括号 在 Eclipse 中如何获得匹配的括号来突出显示 我正在使用java 和groovy 工作 在 eclipse 内的 Java 编辑器中打开任何 Java 文件 将插入符号放在左括号或右括号之
  • 如何检测用户的语言(简单的方法)[重复]

    这个问题在这里已经有答案了 可能的重复 用于检测浏览器语言偏好的 JavaScript 我尝试使用以下 js 代码来检测用户语言 但每种方法都会导致undefined 我的用户以两种语言使用该系统EN FA 我可以通过 javascript
  • 在 Java 8 中是否有更简洁的方法来执行此操作 - 地图操作

    对集合映射的一个非常常见的操作是 当键不存在时创建一个具有初始值的新集合 或者如果键存在 则对现有集合执行某些功能 举个例子Map
  • 获取对实体框架中的对象所做的所有更改

    有没有办法在保存所有更改之前获取对实体框架中的对象所做的所有更改 原因是我想在我们的客户数据库中创建一个日志表 so 有没有办法在保存更改之前获取当前数据库值 旧 和新值 当前 如果没有 我怎样才能以通用的方式实现这一点 以便我的所有视图模
  • 使用 .htaccess“欺骗”404 未找到错误

    我目前已将 htaccess 设置为通过以下方式将没有句点或斜杠的任何内容重写为具有 php 扩展名的等效内容 因此 foo 在内部拉起 foo php RewriteCond REQUEST FILENAME f RewriteCond
  • 使用多个键合并Python字典列表

    我想使用多个键合并两个字典列表 我有一个包含一组结果的字典列表 l1 id 1 year 2017 resultA 2 id 2 year 2017 resultA 3 id 1 year 2018 resultA 3 id 2 year
  • 如何使用 onclick 事件将 Javascript 变量传递到 PHP

    我正在尝试将 JavaScript 变量传递给 PHP 以便我可以创建一个 MySQL 查询来返回单个记录 用户将输入一个搜索字符串 无论有多少记录都包含匹配的字符串 该搜索字符串都会返回 然后用户将选择他们想要查看的单个记录 这是我的 H
  • Grails 和 Spring Security:与加密模块 PasswordEncoder 一起使用时,Salt 值必须为 Null

    我几乎完成了 Grails 2 2 1 到 2 3 4 以及 Spring Security Plugin 1 2 7 3 到 2 0 RC2 的升级 我正在运行该应用程序 但是当我尝试登录时 我得到 java lang IllegalAr
  • 持久化嵌入表单

    我正在尝试使用设置一些嵌入式表单this指导 我在我的应用程序中设置了两个模型 课程和评估 每节课可以有多个评估 我设置了一个表单 用户可以在其中创建课程 并在该课程中进行任意数量的评估 提交表单后 它会成功创建课程记录和所有评估记录 但是
  • 您已经激活了 X,但您的 Gemfile 需要 Y

    跑步时rake我收到此错误 您已经激活了 rake 0 9 2 但您的 Gemfile 需要 rake 0 8 7 考虑使用捆绑执行 Using bundle exec rake而不仅仅是rake似乎可行 但这是解决此问题的最佳方法吗 Tr
  • 在 Swift / iOS 中从 UITableView 删除行并从 NSUserDefaults 更新数组的正确方法

    从中删除行的正确方法是什么UITableView并从 NSUserDefaults 更新数组 在下面的示例中 我正在读取一个数组NSUserDefaults并喂养一个UITableView及其内容 我还允许用户删除UITableView我不
  • GLM:不推荐使用以度为参数的函数(当使用弧度时)

    当前使用带有 SDL2 GLM 和 GLEW 的 VC 11 当我尝试做两件事时 问题源于 GLM 创建旋转矩阵 创建透视相机矩阵 3D 错误是 GLM 不推荐使用以度为参数的透视函数 尽管我将弧度 作为浮点数 传递给这两个函数 它说我应该
  • GetDirectories 无法枚举名称为 #255 的文件夹的子文件夹

    我的应用程序是 C 3 5 在 64 位 Windows 7 Ultimate 上运行 它会遍历所有文件夹子文件夹来执行其工作 然而 如果针对名称只有一个符号 255 的文件夹运行 它会失败 陷入无限循环 直到 StackOverflow
  • 如何使用 lodash 合并/连接对象数组中相同对象属性的值?

    我有一个对象数组的数组 如下所示 let fruitSamples id 1 type apples samples 1 2 3 id 2 type bananas samples 1 2 7 id 3 type pears samples
  • 理解 __init_subclass__

    我终于升级了我的 python 版本 并且发现了添加的新功能 除此之外 我对新的东西感到摸不着头脑 init subclass 方法 来自文档 每当包含类被子类化时 就会调用此方法 CLS 然后是新的子类 如果定义为普通实例方法 则此 方法
  • Jade - 打印所有可能的变量

    我希望能够显示当前加载的 jade 文件可以访问的所有可用变量 我意识到这有点奇怪 但你就知道了 如果它在控制台中或输出到页面 我并不真正担心 console info res locals this gives back way more
  • 使用 Lambda 进行模板类型推导

    我面临的问题很简单 给出以下代码 template
  • 在元标记中使用换行符

    我想在我的网站描述元标记中使用换行符 我该怎么做 因为如果我看到源代码它仍然会显示 br 仅有的 我在代码中使用类似的东西 为了在 AddThis 元内容标记中使用 n 将被忽略 所以这是行不通的
  • 用于文件关联的 dde ​​的最佳 .net 替代方案是什么?

    我有一个 MDI Windows 窗体应用程序 net 2008 它允许用户将各种文件类型与该应用程序关联 我目前使用类似这样的注册表项来执行此操作 这会导致应用程序通过命令行加载和访问文件名 Registry SetValue appKe