![]() |
|
#1
|
|||
|
|||
![]() Привет. У меня сетевое приложение: отслеживет окна на компах и скидывает их на сервак. На клиенте работает служба, которая запускает программу. Программа собственно перечисляет окна и отправляет по сети. Если программу запустить самому то она найдет все окна. Но когда ее запускает служба, она находит всего 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; |