![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Составление списка активных окон в системе из сервиса [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.