1. John Strano
  2. PowerBuilder
  3. Monday, 30 April 2018 13:38 PM UTC

I have a customer for whom DDE is failing on some workstations after deploying to 64bit as 32bit.

They're using DDE only to communicate between PowerBuilder-developed applications.

I'm going through the checklist of UAC, log jam of splwow64.exe or other DDE users, etc.

 

In the meantime I'm determining time needed to replace these PowerBuilder apps' DDE usage to communicate with each other compared to time needed for a "fix".

I'm tempted to shoot from the hip and use TCP/IP (don't want to broadcast via UDP), but I want to ask you folks to check me on this.

I don't want to have the TCP/IP hammer in hand and have everything look like a nail (if this an apt simile).

 

What is the least time-intensive way that you've historically used to replace DDE comms?

 

Thank you.

Alfredo Aldama Accepted Answer Pending Moderation
  1. Monday, 30 April 2018 17:32 PM UTC
  2. PowerBuilder
  3. # 1
Hi,
Assuming they communicate between two PB applications, bidirectional communication ... 
First option: TCP / IP - Socket 
Second option: HTTP client applications making use of the HTTP object in conjunction with some application server that allows me to do API REst, which involves listeners and filters. 

 

Regards !

Comment
There are no comments made yet.
Roland Smith Accepted Answer Pending Moderation
  1. Monday, 30 April 2018 14:12 PM UTC
  2. PowerBuilder
  3. # 2

For two PB apps on the same pc, the Send function should work well.

Message #1024 corresponds to pbm_custom01, #1025 to pbm_custom02 and so on...

It is possible to send a string using the SendMessage API function as long as the value isn't a local variable. Then in the receiving event use the "address" option of the String function to convert the param pointer to a string.

 

Comment
  1. Roland Smith
  2. Monday, 30 April 2018 14:15 PM UTC
Note: I have used this method on Windows 10 to send strings between background threads of the same app, I'm not 100% sure it works between two apps. You can use Mike's suggestion and use the params as keys to the registry or even a database table.

  1. Helpful
There are no comments made yet.
mike S Accepted Answer Pending Moderation
  1. Monday, 30 April 2018 14:02 PM UTC
  2. PowerBuilder
  3. # 3

for something that is not  too 'chatty' i post events to the PB application.  The calling application will store data/commands in the registry for what exactly you want to do, and the receiving application reads and cleans up (deletes) the registry info.  You can also create registry keys that are based on numbers, and send the number as the event argument - so you can ensure that commands are not overwriting each other if it is sending a burst of things to do.  

 

 

 

Comment
  1. Chris Pollach @Appeon
  2. Monday, 30 April 2018 14:14 PM UTC
Hi Mike;



   Another great Idea ... however, you might get caught in some user environments with write privileges to the O/S Registry.



Regards ... Chris

  1. Helpful
There are no comments made yet.
Chris Pollach @Appeon Accepted Answer Pending Moderation
  1. Monday, 30 April 2018 13:58 PM UTC
  2. PowerBuilder
  3. # 4

Hi John;

    If DDE communication are only being used between PB Apps - I would use either a) The FindWindow SDK command, Custom User Events and the Send ( ) command approach  or   b) TCP/IP.  

    My vote would be TCP/IP if complex data was being exchanged.

HTH

Regards ... Chris

Comment
There are no comments made yet.
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.