DELPHI:将一些数据存储在共享内存中,以便从多个应用程序进行访问

时间:2014-03-21 11:01:34

标签: windows delphi windows-8 windows-7 delphi-xe3

问题解决
我有两个应用程序:第一个第二个 First 是我的, Second 是由外包开发的。

1)在某个时间我需要从 First 应用程序向 Second 发送消息,使 Second 一个可见,在最小化之后最大化。

2)为了执行(1)步骤,第二个应用程序应将其句柄存储在共享内存中的某个位置,可以通过名称或其可能的任何内容访问(如互斥锁)做)。

问题

那么,在操作内存中存储数据(句柄)的更好选择是什么?

1 个答案:

答案 0 :(得分:2)

如果要将此信息存储在共享位置,则通常使用共享内存。在Windows术语中,这是一个文件映射对象。通过致电CreateFileMapping创建一个。这些是内核对象,因此可以在内核命名空间中命名。

使用文件映射并不是一件很有趣的事情,因此您可能希望找到一个更简单的解决方案。为应用程序的主窗体提供唯一的类名。例如,您可以将表单的类命名为TMyCompanyNameMyProductNameMainForm。然后调用FindWindow传递该类名以查找现有的应用程序窗口。