Data system sharing

Good evening. I am looking for a way to share data from my application on a system scale so that other applications can read this data and then do whatever they need with them (for example, format them for display, use for logging, etc.). Data must be dynamically updated in the method itself.

WMI first appeared, but then you have a problem with pausing applications when reading from WMI. In addition, I do not know how to configure my own namespace or classes, if this is possible even in Delphi.

Using files is another idea, but it can lead to a hard disk, and this is a real terrible method to use in real time.

Using a driver is likely to be the best option, but it's a little too intrusive for users, to my liking, and I don't know where to start with it.

WM_COPYDATA will be great, but I'm not sure if it is so dynamic enough and whether it will be heavy on resources or not.

Using TCP / IP will be the best choice for the entire network, but, obviously, is unsuitable for working in one system without any network requirements.

As you can see, I'm struggling to figure out where to go. I don’t want to go into one method just to find that it will not work in the end. Essentially, something like a service or background process to write data, and then allow other applications to read that data. I'm just not sure about the methods. I would prefer NOT to need a height / UAC to do this, but if necessary, I will agree to this.

Delphi 2010 .

?

+5
5

Client-Server, IPC.

WM_COPYDATA - . , , . , ( , - ).

, . IPC- , ( ).

. / - Windows ( TCP/IP , TCP/IP).

, , . WM_COPYDATA, , TCP/IP HTTP, .

ORM ORM , WM_COPY_DATA, named pipe, HTTP . , . , :

 Client server access: 
  - Http client keep alive: 3001 assertions passed
     first in 7.87ms, done in 153.37ms i.e. 6520/s, average 153us
  - Http client multi connect: 3001 assertions passed
     first in 151us, done in 305.98ms i.e. 3268/s, average 305us
  - Named pipe access: 3003 assertions passed
     first in 78.67ms, done in 187.15ms i.e. 5343/s, average 187us
  - Local window messages: 3002 assertions passed
     first in 148us, done in 112.90ms i.e. 8857/s, average 112us
  - Direct in process access: 3001 assertions passed
     first in 44us, done in 41.69ms i.e. 23981/s, average 41us
  Total failed: 0 / 15014  - Client server access PASSED

, , WM_COPY_DATA, , HTTP (.. TCP/IP). 5 JSON, 113 , , 100 (, :)). (, 4 ) WM_COPY_DATA , HTTP-TCP/IP.

+5

IPC ( ) Windows. , PostMessage, , .

+2

, NoSQL.

, Delphi, REST- , , , .

+2
+1
source

Googling for 'delphi interprocess communication' will give you a lot of pointers.

I suggest you take a look at http://madshi.net/ , especially MadCodeHook (http://help.madshi.net/madCodeHook.htm)

I have a good experience with the product.

0
source

All Articles