在进程之间移动数据

2024-01-13

我问这个问题的原因是寡妇不支持进程间通信的好方法。所以我想为Windows进程之间的通信点创建一个DLL。线程由一个进程拥有,不能交给另一个进程。 每个线程都有自己的堆栈。 如果加载 DLL (loadlibray) 并调用 DLL 函数,该函数会向 Windows 请求内存。我写信是为了认为线程仍然由同一进程拥有并将内存分配到同一进程中。

所以我在想我是否可以转向汇编来将一个小内存块重新分配给另一个进程。创建一个关键部分,将数据复制到另一个(已创建的)内存块,然后返回到原始块到其原始进程,而无需设置窗口。以前有人这样做过吗?或者是更好的方法。

此致, 莱克斯·迪恩.


我看到其他方法速度相当快,但我想要一种非常快速且开销很小的方法。管道和互联网显然可以工作,但不是最好的选择,但实施起来很简单(感谢提供此类建议的人)。有时我想以相当规律的间隔发送相当多的 500 字节块。我喜欢 WM_COPYDATA 因为它看起来很快,我在互联网上查找的最大问题是:- GetCurrentProcess 和 DuplicateHandle 来获取真正的句柄。寻找其他进程。并使用消息来设置内存然后使用WM_COPYDATA。我只需要两条消息a)指针和大小b)数据已被复制。 我的应用程序进程很容易“GetCurrentProcess”,除了它是一个伪句柄,它总是 $FFFFFFE。我需要真实的进程句柄,但互联网上没有人给出 DuplicateHandle 的示例。这就是让我难住的原因。你能给我看一个 DuplicateHandle 的例子吗?这就是让我困惑的地方?

我不喜欢通过表格来获取句柄,因为一个应用程序并不总是有当前的表格。 我不喜欢通过表格来获取句柄,因为一个应用程序并不总是有当前的表格。 在 Delphi 中,我看到使用 TSpeedButton 发送消息,以在应用程序之间建立简单的快速通信方法,我猜它很可能使用大约 80 条指令。所以我仍然考虑考虑dll。 Mads Elvheim 发送的示例与我已经知道的处于同一行。 我仍然愿意了解使用我自己的 *.Dll 的任何其他选项 因为对我来说很重要的应用程序可以简单地在 *.DLL 上注册/取消注册它自己的进程,而不是一直搜索以查看进程是否是当前的。 这就是我在进程之间使用 *.DLL 管理内存的方式,但我没有被告知。 对我来说,实现 DLL 并不难,因为我已经有自己的一个正在运行。

真正的底线是访问Windows来创建一个好的选择。因为我对想法非常开放。甚至是进程之间或 Windows 调用的汇编指令。但我不知道通过做非法的事情来让法庭撞毁窗户以太。 因此,请举例说明您所做的满足我的需要的事情。这很快,我很感兴趣,因为无论如何我很可能会使用它。


我有一个基于命名管道的非常快速的 IPC(进程间通信)解决方案。它非常快并且非常易于使用(它向您隐藏了实际的实现。您只需处理数据包)。也经过测试和证明。您可以在这里找到代码和演示。

http://www.cromis.net/blog/downloads/cromis-ipc/ http://www.cromis.net/blog/downloads/cromis-ipc/

它还可以在同一 LAN 中的计算机之间运行。

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

在进程之间移动数据 的相关文章

随机推荐

  • 在没有 gcc 或 root 访问权限的共享主机上安装需要 gcc 的 python 模块

    我正在使用 Hostgator 共享作为生产环境 并且在使用以下命令后安装一些 python 模块时遇到问题 pip 安装 MySQL python 点安装枕头 结果是 无法执行 gcc 权限被拒绝 错误 命令 gcc 失败 退出状态为 1
  • Node/Express 的 MongoDB 示例 AJAX 调用?

    这是从一个非常基本的页面开始 HTML 表单 一个按钮和一个 div 框 单击按钮将通过 AJAX POST 表单数据 数据将存储在 MongoDB 中 并在不刷新页面的情况下检索到 div box 中 来自index html的AJAX
  • VMWare 如何防止虚拟机更新其日期和时间

    我想知道虚拟机 VMWare 如何更新其日期和时间以及如何禁用它 因为我注意到 即使我将虚拟机暂停 关闭一年 当我再次打开它时 它也会有正确的时间和日期 对于物理机 我知道主板上固定的中央单元内有一个小电池 有助于在计算机关闭并断开电源时保
  • Apache Zeppelin 0.6.1:运行 Spark 2.0 Twitter Stream 应用程序

    我有一个安装了 Spark 2 0 和 Zeppelin 0 6 1 的集群 自从上课以来TwitterUtils scala从 Spark 项目移至 Apache Bahir 我无法再在我的 Zeppelin 笔记本中使用 Twitter
  • C# 中实现相等性的最少代码

    In this Eric Lippert 在第 9 点中指出 C 具有 太多的平等性 他指出有 9 或 10 种不同的方法或运算符可以重载以提供对象相等性 我的第一个问题是 如果重写 Object Equals object 方法 编译器是
  • Linux 下 Java 的虚拟内存使用情况,使用了太多内存

    我在 Linux 下运行 Java 应用程序时遇到问题 当我使用默认最大堆大小 64 MB 启动应用程序时 我看到使用 tops 应用程序为该应用程序分配了 240 MB 虚拟内存 这会给计算机上的一些其他软件带来一些问题 而计算机的资源相
  • 调整标题大小 onscroll React

    我基本上需要在 React 中重写这个 codepen https codepen io lili2311 pen dJjuL https codepen io lili2311 pen dJjuL function resizeHeade
  • 伪随机数生成器给出相同的第一个输出,但随后表现如预期

    使用随机类和时间种子 NULL 均匀分布总是给出相同的第一个输出 即使使用不同的编译 但第一个输出之后的行为就像您期望的伪随机数生成器的行为一样 这是建筑造成的 还是我使用不当 MWE include
  • 在“ForEach”上引用初始值设定项“init(_:content:)”要求“Planet”符合“可识别”

    我目前正在构建一个 ios 应用程序 似乎有以下问题 Referencing initializer init content on ForEach requires that Planet conform to Identifiable
  • 适用于 Android 的 OpenGL ES 2.0 中的纹理

    我是 OpenGL 新手 我正在通过使用 ES 2 0 为 Android 制作 2D 游戏来自学 我首先创建一个 Sprite 类 该类创建一个平面并向其渲染纹理 为了练习 我有两个 Sprite 对象 它们在同一位置交替绘制 我在 ES
  • 普通用户无法读取/proc/net/dev

    我很确定我在这里遗漏了一些东西 但我不确定到底是什么 这是 root 可以看到的 root opteron16 ls l grep proc dr xr xr x 290 root root 0 2012 01 14 02 03 proc
  • Caddy - 在本地域上设置 HTTPS

    我想将 HTTPS 添加到我的本地域 但是我们无法在本地主机上执行此操作 当我使用此 Caddyfile 运行时 我的网站运行良好 localhost 2020 bind ADDRESS proxy http 192 168 100 82
  • Android中的ListView打开超链接

    有什么办法可以显示名称吗 TechCrunch Twit NASA 在列表视图中 当用户单击其中一个时 它应该打开一个意图 其中包含列出的相应网站的链接 任何想法表示赞赏 如果你不想要ListView由数据库生成 并且您希望将每个网站添加到
  • 无论如何将构造函数参数传递给 JAXB 适配器?

    我在我编写的 WebService 中使用 Spring 3 IOC 和 JAXB JAX WS 我现在遇到一个小问题 数据必须在返回给消费者之前进行四舍五入 因为它们无法处理值的完整精度 为了最大限度地减少对 WS 设计和计算的影响 我选
  • Eclipse:有没有办法快速导出JAR

    所以这可能看起来有点模糊 快 到底有多快等等 好吧 我只是想知道是否有一种方法可以比以下更快地导出 JAR 文件 File gt Export gt JAR File等等等等 就像我可以Ctrl Drag到资源管理器并导出项目标题和 jar
  • 删除继承的 ASP.NET Core 应用程序设置

    我的启动中有以下设置 var builder new ConfigurationBuilder AddJsonFile appsettings json true true AddJsonFile appsettings env Envir
  • Google Charts 堆叠了列,每个列都有不同的注释

    我希望你能帮助我解决这个问题 我有一个堆积柱形图 所有柱形图的每列中都有两个要堆积的值 我已经成功创建了图表 但我需要为每列的每一部分添加注释 我不知道它的正确名称 指示该部分在其自己的列中所代表的总数的百分比 在下面给出的示例中 我需要设
  • 如何在 Java Swing for Hangman 游戏中获取从侦听器更新的文本字段?

    我正在尝试从 Hangman 程序编写代码 我不确定这个想法是否正确 我正在考虑在文本字段中添加破折号 当用户按下按钮时 该破折号必须动态更改 例如 如果用户按下下面代码中的 A 按钮 则破折号应更改为 A 即用户猜对了字母A 我仍然对如何
  • 将带点或逗号的字符串转换为浮点数

    我总是喜欢在函数中输入以获取范围从 0 1 到 999 9 的数字 小数部分始终用 分隔 如果没有小数则没有 例如 9 或 7 无论本地化如何 如何将此字符串转换为浮点值 某些国家 地区使用 来分隔数字的小数部分 我总是用 来获取它 这取决
  • 在进程之间移动数据

    我问这个问题的原因是寡妇不支持进程间通信的好方法 所以我想为Windows进程之间的通信点创建一个DLL 线程由一个进程拥有 不能交给另一个进程 每个线程都有自己的堆栈 如果加载 DLL loadlibray 并调用 DLL 函数 该函数会