Why Experts Exchange?

Experts Exchange always has the answer, or at the least points me in the correct direction! It is like having another employee that is extremely experienced.

Jim Murphy
Programmer at Smart IT Solutions

When asked, what has been your best career decision?

Deciding to stick with EE.

Mohamed Asif
Technical Department Head

Being involved with EE helped me to grow personally and professionally.

Carl Webster
CTP, Sr Infrastructure Consultant
Ask ANY Question

Connect with Certified Experts to gain insight and support on specific technology challenges including:

Troubleshooting
Research
Professional Opinions
Ask a Question
Did You Know?

We've partnered with two important charities to provide clean water and computer science education to those who need it most. READ MORE

troubleshooting Question

Problem with FindWindow in A Service (Vista SP1)

Avatar of ThomasReimann
ThomasReimann asked on
Delphi
11 Comments1 Solution2090 ViewsLast Modified:
Hi.

Here is my Delphi code:

procedure SendMessageToWindow(msg: LongWord;value:longword=0);
var Wnd: THandle;
begin
  Wnd := FindWindow('myClass', NIL);
  if Wnd > 0 then
  begin
       if IsWindowResponding(Wnd,100) then
          SendMessage( HWND_BROADCAST,
               RegisterWindowMessage('myAppMessage'),
               msg,
               value )
       else
           Error('hung!!');
  end;
end;

It searches for the handle of a window and sends a message to that window.

The code works when used in an normal application (both in xp and vista).
The code works when used in a service application running windows xp.
The code does NOT work when used in a service application running vista (handle is always = 0).

Apparently Vista restricts Services so they cannot use the FindWindow api function anymore.

Is there a way around this? If not, which other (simple) way to send messages to an application from a service (so the app can go to front etc).

Thanks in advance.
ASKER CERTIFIED SOLUTION
Avatar of djdj
djdjFlag of United States of America image

Our community of experts have been thoroughly vetted for their expertise and industry experience.

Commented:
This problem has been solved!
Unlock 1 Answer and 11 Comments.
See Answers