Hi,
I need to send, or set up some variables in another application. Is there any way how you can do this?
For example, from one application you can set the progress value of progress bar in another application.

PS: I want to know tha way how to do this, when I want to send some data from app made in C++ to another made in Delphi (there's the progress bar). So the main problem is in the C++. :icon_cool:

You can't do it directly from c++, but if you wrote that Delphi program you can change it to get update info from the c++ program. You can set up a communications link between two programs, sort of like client/server, where c++ sends data to Dephi and Delphi uses that to update its progress bar. You might also be able to do it by hacking the delphi program, but that requires a lot of expertise that I don't possess. I'm not a hacker :)

Yes, like AD said, if you don't have access to the Delphi code then you are pretty much out of luck.

The best way is to set up some form of IPC.

  1. You can create a parent-child pipe.
  2. You can use windows messages.
  3. You can create server/client sockets.

Those are your choices on Windows.

Yes, like AD said, if you don't have access to the Delphi code...

But as I wrote, I have the code of the Delphi application. I just need some "example" how you can do this. If it's possible by using sending messages, can you show me example, how to send message from C++ and to receive this "message" in Delphi code.

You only said that the app was made with Delphi. That doesn't mean you have access to the source.

In any case, I'll see if I can find you some good message IPC links and/or code.

OK, here's what I was looking for.

IPC.pas by Bill Nemmers.
(If you don't want to register there you can also find it on Torry's pages.)

It is in Delphi but it should be easy enough to translate to C++ (all the actual work is done using the Windows API). Peruse it a bit and you'll see how he does it is actually pretty simple.

Hope this helps.

This article has been dead for over six months. Start a new discussion instead.