Привет. У меня сетевое приложение: отслеживет окна на компах и скидывает их на сервак. На клиенте работает служба, которая запускает программу. Программа собственно перечисляет окна и отправляет по сети. Если программу запустить самому то она найдет все окна. Но когда ее запускает служба, она находит всего 4 окна. Подскажите пожалуйста почему когда она запускается из службы, она не определяет все окна.
код запуска из службы:
Код:
ShellExecute(0,'open',pchar('c:\windows\system32\admin_client.exe'),nil,nil,sw_show);
функции которыми перечислял окна - getwindow или enumwindow.
Остановился на enumwindow - EnumWindows (@EnumProc, 0);
Код:
function EnumProc (Wd: HWnd; Param: LongInt): Boolean; stdcall; // Обязательно stdcall !!!
var
buff: array [0 .. 127] of char;
Begin
IF GetWindowText(wd, buff, SizeOf(buff))<>0 then
begin
wndhandle := inttostr(wd);
GetWindowText(wd, buff, SizeOf(buff));
wndcaption := copy(buff, 1, 127);
sended:= sended+wndcaption + separ + wndhandle + endsepar;
end;
EnumProc := TRUE;
end;