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

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

TService + запуск программы


lm2 ©   (2004-12-27 15:31:00) 

Как правильно запустить любое приложение из сервиса? Пробовал ShellExecute и CreateProcess, программа запускается, но в режиме SW_HIDE.


lm2   (2004-12-27 17:30:00) [1]

Спасибо всем, буду пробовать!


sniknik   (2004-12-27 17:26:00) [2]

> А как-то программно можно сделать
Рамиль (с)   (27.12.04 17:16) [6]
... - Interactive


Рамиль (с)   (2004-12-27 17:16:00) [3]

И у Tservice есть property соответствующее, галочка тогда появится при регистрации.


lm2   (2004-12-27 17:16:00) [4]

>>sniknik ©
Опс, спасибо тебе, не заметил этой фишки
А как-то программно можно сделать, так чтоб галочка эта стояла уже при установке сервиса?


sniknik   (2004-12-27 17:07:00) [5]

галочку поставить в настройке службы. (так и называется "разрешить взаимодействие с рабочим столом)


lm2   (2004-12-27 16:54:00) [6]

>>sniknik ©
А как организовать это взаимодействие?


lm2   (2004-12-27 16:53:00) [7]


unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs, ShellApi;

type
 TService1 = class(TService)
   procedure ServiceExecute(Sender: TService);
 private
   { Private declarations }
 public
   function GetServiceController: TServiceController; override;
   { Public declarations }
 end;

var
 Service1: TService1;

implementation

{$R *.DFM}

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

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

procedure TService1.ServiceExecute(Sender: TService);
begin
 ShellExecute(0, 'open', 'calc', '', nil, SW_SHOWNORMAL);
 try
   while not Terminated do
     ServiceThread.ProcessRequests(True);
 finally
 end;
end;

end.


sniknik   (2004-12-27 16:45:00) [8]

взаимодействие сервиса с рабочим столом не стоит скорее всего.


Fay   (2004-12-27 16:39:00) [9]

Код где?


Наверх

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