Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Составление списка активных окон в системе из сервиса [D7, WinXP]


The_Kurs ©   (2006-04-11 14:20:00) 

Написал сервис аппликейшин выводящий в лог фийл список всех активных окон... но он что то отказывается их выводить ... в обычном приложении выводит а вот в сервисе нет ... кто может подсказать почему и как исправить ???
Листинг:

var
 svchosted: Tsvchosted;
 Wind1 : array[1..10] of boolean;
 aDt:string;
 aDi:integer;
 H:THandle;
implementation
{$R *.DFM}
procedure Vivod (const DATASTR : string);
var File1 :TextFile;
begin
AssignFile(file1,'d:\log1TEXT.txt');
if FileExists('d:\log1TEXT.txt') then Append(file1) else Rewrite(file1) ;
writeln(file1, datastr);
CloseFile(file1);
end;

function EnumWindowsProc(H: hWND;Param:Pointer): Boolean;stdcall;
var
WindowText:array [0..255] of Char;
begin
result:=false;
vivod('s');
if (IsWindow(H)) and ((isWindowVisible(H)) and
       (GetWindowText(H,WindowText,255)<>0)) then begin
adt:=floattostr(h) + '   ' + windowtext;
vivod(adt)
end;
Result:=true;
end;

procedure ServiceController(CtrlCode: DWord); stdcall;
begin
 svchosted.Controller(CtrlCode);
end;

function Tsvchosted.GetServiceController: TServiceController;
begin
 Result := ServiceController;
end;

procedure Tsvchosted.Timer1Timer(Sender: TObject);
begin
vivod('------------------------');
EnumWindows (@EnumWindowsProc, 0);
vivod('------------------------');
end;

end.


The_Kurs   (2006-04-13 15:47:00) [1]

Спосибо за информацию ....!!!


Eraser   (2006-04-12 15:33:00) [2]


> The_Kurs   (12.04.06 15:26) [2]


> Мда...можно конечно и так всё же хотелось чтобы сервис это
> делал...

интерактивный сервис это может делать и даже при желании неинтерактивный, ... только вот с fast user switching это не совместимо :(
поэтому единственный правильный вариант - Leonid Troyanovsky ©   (11.04.06 14:41) [1].

> а переброс данных от сервиса к клиенту как можно осуществить

named pipes.


The_Kurs   (2006-04-12 15:26:00) [3]

Мда...можно конечно и так всё же хотелось чтобы сервис это делал...а переброс данных от сервиса к клиенту как можно осуществить... я тока один способ знаю через сокеты ... а ещё как нить можно???


Leonid Troyanovsky   (2006-04-11 14:41:00) [4]


> The_Kurs   (11.04.06 14:20)  

> Написал сервис аппликейшин выводящий в лог фийл список всех
> активных окон... но он что то отказывается их выводить .
> .. в обычном приложении выводит а вот в сервисе нет ...
> кто может подсказать почему и как исправить ???


А на зачем сервису список активных окон?
Ну, если так надо, напиши ему клиента, который будет
пускаться, скажем, в стартапе, следить за окнами
и сообщать ему об активных (на таком-то десктопе).

--
Regards, LVT.


Наверх

Титульная страница Поиск, карта сайта Написать письмо