|
yes i want to display some infoemation to user thorugh dlg box if you know the code pls help me
I Think It will Work
Alok Gupta
visit me at http://www.thisisalok.tk
|
|
|
|
|
I reiterate that this is a bad idea. Most services run on a server locked away in a closet somewhere, so if your service presented any UI elements, such as a message box, no user would be in front of the machine to see and then dismiss it. Also, any windows created would probably appear on a window station or desktop different from the one the user was sitting in front of, and thus the message wouldn't be visible to the user anyway. It sounds like you need a Service Control Program (SCP) instead.
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|
|
Yeah i got the solution.
i have made my service desktop interactive.
all of my problem has been solved thanks for your concern.
now i will use winlogon notifcation package to know wheather the user is login or not
thanks any way
I Think It will Work
Alok Gupta
visit me at http://www.thisisalok.tk
|
|
|
|
|
I suggest that if you write a GUI application that interogates the service. Windows services run before users login and indeed run without a desktop.
Ant.
I'm hard, yet soft. I'm coloured, yet clear. I'm fuity and sweet. I'm jelly, what am I? - David Williams (Little Britain)
|
|
|
|
|
how a Gui application interact with service,have you any idea.
i think wheather i use socket or there is any other way
I Think It will Work
Alok Gupta
visit me at http://www.thisisalok.tk
|
|
|
|
|
There are various methods of interprocess communication(IPC). Named pipes, memory mapped files and other forms of shared memory.
If you search for IPC on codeproject you can't go far wrong reading about these.
Ant.
I'm hard, yet soft. I'm coloured, yet clear. I'm fuity and sweet. I'm jelly, what am I? - David Williams (Little Britain)
|
|
|
|
|
Alok the programmer wrote:
how a Gui application interact with service,have you any idea.
This is what a Service Control Program (SCP) is for. It's how the actual service is configured.
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|
|
#ifdef _WIN32_WINNT
#if (_WIN32_WINNT >= 0x0400)
#define MB_SERVICE_NOTIFICATION 0x00200000L
#else
#define MB_SERVICE_NOTIFICATION 0x00040000L
#endif
#define MB_SERVICE_NOTIFICATION_NT3X 0x00040000L
#endif
MessageBox(...,MB_SERVICE_NOTIFICATION)
|
|
|
|
|
what is that sir.
i want to show dlg box
your above code is also not working
I Think It will Work
Alok Gupta
visit me at http://www.thisisalok.tk
|
|
|
|
|
I have two programs, and I need to have a special window open whenever one or both of them are loaded. It's working pretty well, but I've run across a problem: if I load program 1, then program 2, then close P2, then close P1, it works fine (the window isn't destroyed until the last program exits), but if I load P1, then P2, then close P1, the special window is destroyed (because P1 was the program that spawned it). Is there any way to pass the special window from P1 to P2, so closing P1 doesn't close the that window? I can't just recreate the special window, because then it loses its position on the taskbar (moves to the end of the list of open programs).
Thanks!
|
|
|
|
|
When P1 starts, check for the existance of the special window and create it if necessary. Save the window handle for later. When P2 starts, check for the existance of the special window and create it if necessary. Save the window handle for later. When P1 ends, if it has a valid window handle and P2 is not running, close the special window. When P2 ends, if it has a valid window handle and P1 is not running, close the special window. Will that work?
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|
|
That's exactly what I'm doing already. The problem occurs when closing P1 but P2 is still running: the special window is closed anyway (which appears unavoidable unless a separate process is used for the special window).
|
|
|
|
|
So are you saying that P1 is closing the special window without first checking to see if P2 is still running?
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|
|
No; let me show you some psuedo-code to illustrate:
P1_OnExit()<br />
{<br />
if(!exists(P2))<br />
close(specialwindow)
}<br />
|
|
|
|
|
It looks as though the exists() function is not returning the correct status of P2.
On the other hand, I may be making an incorrect assumption about the "special window." Reading through the other replies to this post, I was assuming it was a separate process (since the word spawn) was used. If it is indeed just a window that is "owned" by P1, my posts are wrong.
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|
|
I don't believe a window can survive it's parent process. If that is true then you need the "special window" to be a separate process. Then i believe you can just make the special process a "single instance" process by using a mutex.
"No matter where you go, there your are." - Buckaroo Banzai
-pete
|
|
|
|
|
If I did that, would the new process be visible to the user (listed in Task Manager)?
|
|
|
|
|
Yes
Why dont you simply *hide* P1 as if it was closed?
Another option is to inject the window into explorer.exe this way it wont die with P1.
Check CreateRemoteThread
Papa
while (TRUE)
Papa.WillLove ( Bebe ) ;
|
|
|
|
|
Well, P1 will be taking up at least 40mb, so that's not an option
Thanks, I'll check out that function.
|
|
|
|
|
|
We're trying to avoid that, making it as clean as possible. But, if there's no decent way around it, then we might end up doing that after all.
|
|
|
|
|
Sorry that Anonymous post was me... i timed out, had to actually do some work
"Clean" is in the eye of the beholder. My first thought is that a Single Instance process for the special window would produce the "Simplest" solution. I always like simple. Of course I don't have the complete context of your problem so...
"No matter where you go, there your are." - Buckaroo Banzai
-pete
|
|
|
|
|
Well, basically I'm trying to force two different programs to appear as one program on the taskbar, but two separate programs in the alt-tab window. I'm currently doing it by making the two programs not show up on the taskbar, and using a special window and the ITaskbarList interface to make an entry on the taskbar that doesn't show up in the alt-tab window.
|
|
|
|
|
Probably a stupid question, but... Why not just One process that looks like One process because it is One process?
"No matter where you go, there your are." - Buckaroo Banzai
-pete
|
|
|
|
|
Both apps are way too big to combine them both, that's why
|
|
|
|