is it possible to understand that using c#?

No, they do the same thing. When you execute an application from a command prompt it starts a process... the same with double clicking on it. Why does it matter?

It does matter if its a console application but that is a different story..

because i have a smart update program which pushes software updates to clients. but clients are also able to run .msi files directly on their PCs. i use the same msi for both uses. when it is pushed from the server i need to do different stuff. when it is run by directly clicking on it, i need to do different stuff. that is why i am asking.

I don't understand... you have an .msi that triggers the update and an .msi that installs the product but they have two completely separate functions built in the same installer? When you push an .msi doesn't it just move the file but no execution is triggered?

the actual scenario is complicated so that is why we couldnt communicate this time. i have a custom update software, it is not something provided by microsoft or some company. it is produced by us. it has three components with ftp server, windows service and windows application for administration. these components communicate using telnet. but i think i cant tell the details further because they may kick my ass thinking i share some commercial software architecture.

This relates to both of these threads. Download SIW by gabriel. On the left you can see "running processes" and it lists the parent PID which can tell you the caller on who invoked your application.

SIW is the best utility ever++