Question Data Exchange between multiple prowin32 applications

Cecil

19+ years progress programming and still learning.
Window 10/11
OE 11.7.x 64bit

I have a requirement where I would like to implement a publish & subscribe model between two separate prowin32 sessions.

My scenario would be I would have application "ABC" already running and any additional prowin32.exe session (on the same users window session) would execute and broadcast some data and then exit.

Normally back in the 90's we would use DDE to exchange data between two separate applications, but this seems to be too old school.

What is the recommended modern .NET approach to Dynamic Data Exchange.

NOTE: I want to avoid socket programming.
 

Osborne

Active Member
At one stage there was the possibility I was going to have to do something similar but the project was shelved. I only had an initial look and did not find a .NET approach and this site almost suggests there is none:


I had found this at the time and thought it could maybe have been a possible rough solution using API calls:


However, although you can list all prowin32.exe sessions could not find out what actual application/window was running:

Code:
DEFINE VARIABLE oProcesses AS System.Diagnostics.Process EXTENT NO-UNDO. 
DEFINE VARIABLE i AS INTEGER NO-UNDO.
    
oProcesses = System.Diagnostics.Process:GetProcessesByName("prowin32").

DO i = 1 TO EXTENT(oProcesses):
   MESSAGE "Id =" oProcesses[i]:Id SKIP
           "Process Name =" oProcesses[i]:ProcessName SKIP
           "Start Time =" oProcesses[i]:StartTime SKIP
           "Window Title =" oProcesses[i]:MainWindowTitle
           VIEW-AS ALERT-BOX.
END.

That was as far as I got so not really much help, but if it gives you some ideas then something.
 

missguided79

New Member
Window 10/11
OE 11.7.x 64bit

I have a requirement where I would like to implement a publish & subscribe model between two separate prowin32 sessions.

My scenario would be I would have application "ABC" already running and any additional prowin32.exe session (on the same users window session) would execute and broadcast some data and then exit.

Normally back in the 90's we would use DDE to exchange data between two separate applications, but this seems to be too old school.

What is the recommended modern .NET approach to Dynamic Data Exchange.

NOTE: I want to avoid socket programming.

I have a requirement where I would like to implement a publish & subscribe model between two separate prowin32 sessions.

I have a solution 4 U.

Have 1 prowin32 session runnin - the subscribe box
Have a different prowi32 session runnin - the publish box

(implement a publish & subscribe model between two separate prowin32 sessions.)

The subscribe box IS a simple iteration procedure runnin - a do until (flagDropped = TRUE) iteration procedure (subscribe)
The publish box is runnin prowin32 and creates a temp file in a directory in some location - flagDropped
When the temp file IS created this IS the publish (flagDropped = TRUE) TRIGGER for the subscribe box that is loopin through checkin for the creation of a flagDropped file in a location
 
Last edited:

TomBascom

Curmudgeon
Do you have a database connection in common between the two sessions?

That has the advantage of not requiring them to be on the same host. It also opens the door to a portable solution that doesn't require .NET or DDE or sockets or anything ugly like that...
 

Cecil

19+ years progress programming and still learning.
I was hoping for a Event Driven solution rather that "Put down , Pick up" polling solution.
 

missguided79

New Member
I was hoping for a Event Driven solution rather that "Put down , Pick up" polling solution.

The put down IS an event
This Put down , Pick up solution FIT`S the criteria
Just because it is NOT the method U wanted does NOT mean it is NOT a valid method.
 

Cringer

ProgressTalk.com Moderator
Staff member
I was hoping for a Event Driven solution rather that "Put down , Pick up" polling solution.

The put down IS an event
This Put down , Pick up solution FIT`S the criteria
Just because it is NOT the method U wanted does NOT mean it is NOT a valid method.
Nobody actually said it wasn't a valid method. The OP just said that it wasn't the method they were hoping for.
 

Cecil

19+ years progress programming and still learning.
I been doing a lot of reading about Inter process Communication (IPC) and through my investigation I have found Mailslot.

I found a very old ABL Mailslot example Mailslot example | The OpenEdge Hive and it sort of works, but it's having some stability issues that I need to debug. But it looks promising as it's non-blocking because it uses UDP broadcast messages.

The other thing I was looking at was Named Pipes which is almost the same a Mailslot.

It looks like I can't get away from a 'do while loop' or a PSTIMER control.
 
Last edited:
Top