Solved

Pass parameters to running application

Posted on 2015-01-29
8
156 Views
Last Modified: 2015-02-06
Hi

I have a Delphi application with a lot of features. I would like to pass a parameter from another windows application (just a couple of small numbers or text) to run one or multiple features in my app. My app,  running app, is going to be idle, waiting for either user input (user running features manually) or input from other application, which is not delphi based and I have limited options to call/execute external applications. I can execute OS commands, so I can start my app with parameters, but the app is already running, so I need to pass some info, for example 2 numbers or a text and a number or 2 simple 20 chars texts.

So
1) I need to have my app ready to receive some parameters and execute menus/features based on received parameters and
2) I need to be able to pass these parameters from other app. - I assume using OS command

Any suggestions how to start?

Thanx
0
Comment
Question by:Delphi_developer
8 Comments
 
LVL 19

Assisted Solution

by:MerijnB
MerijnB earned 167 total points
Comment Utility
There are several ways to achieve this, and the best way will probably depend on what and how much data you want to sent from one app to the next. Is there data which is much larger then the 20 characters etc you mentioned.

Are you writing the apps you want to sent these commands from yourself? What languages?
0
 

Author Comment

by:Delphi_developer
Comment Utility
Well, i really don't need a lot of data. For start, i f i can get 2 integers is great. Maybe at some point I would like to have a record of 30 variables, 25 integers and 5 strings (255 chars max), but that is ideally.
From the other application I can use
1: os command, so I can execute any .bat files that receive parameters and execute 'call' to my app
2: I can call dll, so maybe I can create middle-man (it will be created with delphi)
3: the other app has limited .Net capabilities, so in theory I could execute .Net code that would do the work

My delphi app is mine, so I can create anynkind of interface (stdcall?) I need for this to work.

Currently, I don't need to return any feedback, just 'receiving'.

I hope this gives more info.

Thanks!
0
 
LVL 3

Assisted Solution

by:lopem
lopem earned 166 total points
Comment Utility
I have a similar problem. I was writing a delphi program that connects to a chess engine vía the standard input/output. The chess engine uses a Universal Chess Interface (UCI), a communication protocol between chess applications and chess GUIs.

I found a component, threated TPipes (http://torry.net/pages.php?id=224) that works perfectly for me. Maybe this can help you.

regards
Manuel Lopez (lopem)
0
 

Accepted Solution

by:
Delphi_developer earned 0 total points
Comment Utility
@MerijnB: you mentioned a couple of solutions are available.. if you can give more details, I would appreciate.

@lopem: Manuel, thank you for the suggestion, although it doesn't fit my problem. Or I can't figure out how to modify it for me.

Right now, I have decided to do it the way I thought I wouldn't need to go:
1. other app will write file with all the info into 'watched' folder
2. My app will watch folder for files and read and execute based on written info in the file
It is not good solution, but this is the only one I can make work right now.

I think I would like to go the way of .Net (C#) <-> Delphi connection, some kind... so, I guess I will have to find a programmer who knows both technologies and can make this work. I understand this is very unique knowledge, so I hope I will find someone.



Thanks!
0
Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

 
LVL 24

Assisted Solution

by:jimyX
jimyX earned 167 total points
Comment Utility
Hi
Despite the variety of possible ways of doing this, I would pick Client/Server TCP approach (or UDP, depends on what you want to do). You can control your application locally or remotely. You can send commands, others can send as well if you share the communications (If you allow others to transmit to your application). Encryption is possible if you need particular client to connect to the Server. So basically you get flexibility in tackling different aspects.

> 1) I need to have my app ready to receive some parameters and execute menus/features based on received parameters
Then your app will be a Server. Upon starting, the app will listen for incoming connections on a particular port.
Executing received commands, from clients, based on predefined protocol.

> 2) I need to be able to pass these parameters from other app. - I assume using OS command
You can use Client/Server approach similar to telnet. The commands can be sent from different applications.
0
 

Author Comment

by:Delphi_developer
Comment Utility
Thank you all for your suggestions!
I started playing around with SendMessages and WM_COPYDATA, so I have opened a new question here:

http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_28608019.html
0
 
LVL 19

Expert Comment

by:MerijnB
Comment Utility
Hi Delphi_developer, sorry for late reply.
The 3 easiest methods are all mentioned already (sockets (tcp or udp), pipes and messages using WM_COPYDATA).
0
 

Author Closing Comment

by:Delphi_developer
Comment Utility
This seems to be working so far, although it is not best solution for my problem, so I decided to ask another questions with WM_COPYDATA solution.
0

Featured Post

Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

Join & Write a Comment

In this tutorial I will show you how to use the Windows Speech API in Delphi. I will only cover basic functions such as text to speech and controlling the speed of the speech. SAPI Installation First you need to install the SAPI type library, th…
Introduction I have seen many questions in this Delphi topic area where queries in threads are needed or suggested. I know bumped into a similar need. This article will address some of the concepts when dealing with a multithreaded delphi database…
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now