Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.07.10;
Скачать: [xml.tar.bz2];

Вниз

Вопрос по TService   Найти похожие ветки 

 
andrey__   (2003-06-25 12:17) [0]

Пытаюсь написать службу . При прогоне в Delphi6 работает 10 -15с. Почему?

Служба записи в файл по таймеру(каждая 1 секунда) определенной строки.
unit Unit1;

interface

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

type
TService1 = class(TService)
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
function GetServiceController: TServiceController; override;
{ Public declarations }
procedure writeFile;
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.writeFile;
Var
nameFile1: string;
F1 : text;
begin
try
nameFile1:="d:\temp1\aaa1";
assignFile(F1, nameFile1);
if not(FileExists(nameFile1)) then
begin
rewrite(F1);
closeFile(F1);
end;
append(F1);
writeln(F1,FormatDateTime("dd"."mm"."yyyy" "hh":"nn":"ss":"zzz",Now));
except
end;
try
closeFile(F1);
except
end;
end;
//---------------------------------------------------
procedure TService1.Timer1Timer(Sender: TObject);
begin
writeFile;
end;

end.


 
andrey__   (2003-06-25 12:48) [1]

ало кто-нибуть.


 
ggsoft   (2003-06-25 13:00) [2]

А где TService.OnExecute?


 
andrey__   (2003-06-25 13:12) [3]

>А где TService.OnExecute?
когда оно приисходит?
скажи какие деиствия мне надо в нем описать


 
ggsoft   (2003-06-25 13:22) [4]

Да ладно, Бог с ним с OnExecute...

Ты же не можешь запустить службу под Delphi и заниматься ее отладкой...
Зарегистрируй ее (Меню-Run-Parameters...- /install), а уже потом и запускай из "Службы"

А пример посмотри, да хотя бы: Delphi Help - TService - Using TService... все понятно...


 
vuk   (2003-06-25 13:34) [5]


procedure TSomeService.ServiceExecute(Sender: TService);
begin
while not Terminated do
ServiceThread.ProcessRequests(True);
end;


 
DieHard   (2003-06-25 13:37) [6]

Можно запустить службу под Delphi и заниматься ее отладкой.
Надо только за эти 10-15 секунд успеть её также запустить из "Служб"


 
ggsoft   (2003-06-25 14:24) [7]


> DieHard © (25.06.03 13:37)

Согласен. Читал... (там же)
---------------------------
On Windows NT systems, you can use another approach for debugging service applications. However, this approach can be tricky, because it requires short time intervals:

1 First, launch the application in the debugger. Wait a few seconds until it has finished loading.
2 Quickly start the service from the control panel or from the command line:

start MyServ

You must launch the service quickly (within 15-30 seconds of application startup) because the application will terminate if no service is launched.
------------------------
Hо чаще делаю по другому...
void __fastcall TService1::ServiceExecute(TService *Sender)
{
bool IsService = !MainForm;
while (IsService ? !Terminated : (bool)MainForm) try {
if (IsService) ServiceThread->ProcessRequests(true);
else Forms::Application->HandleMessage();
}
catch (...) {
//...
}
}
Это из Builder-a, подразумевается, что при запуске приложения создается SvcMgr.Application.CreateForm() и Forms.Application.CreateForm() тогда все сводится к запуску и отладке как обычного приложения а не службы.

З.Ы.
Ну как плюс (или... минус?) возрастает размер исполняемого файла службы.


 
andrey__   (2003-06-25 15:00) [8]

Как запустить из "Служб"


 
ggsoft   (2003-06-25 15:03) [9]

Кошмар какой...

Панель управления - Администрирование - Службы...


 
andrey__   (2003-06-25 16:21) [10]

> ggsoft © (25.06.03 15:03)
извини бывает.

Еще такой момент. В "Службе" нет моей службы (я делал Меню-Run-Parameters...- /install)


 
ggsoft   (2003-06-25 16:53) [11]

Странно очень...

И что, после того как - Parameters... /install + Run(F9) - тебе Delphi не сказало - "Service installed successfully"?


 
andrey__   (2003-06-25 17:18) [12]

нет


 
ggsoft   (2003-06-25 19:22) [13]

Весь твой код скопировал - вставил - ничего не менял - работает, до сих про в D:\Temp1\ пишет, и пишет... и пишет...
создай по-новой, есть же в Delphi примеры.
Ну или попробуй из командной строки "%Path%\MyService.exe /install".
А так и не знаю, что советовать... не сталкивался с таким.


 
ggsoft   (2003-06-25 19:23) [14]

Хотя, а может... издеваешься? Чем не мысль?


 
andrey__   (2003-06-26 10:45) [15]

>ggsoft © (25.06.03 19:23)
Какой смысл. Нет не прикалывался.

>ggsoft © (25.06.03 19:22)
Сделал. сказало - "Service installed successfully"

Запускаю службу под Delphi и за эти 10-15 секунд запускаю из "Служб". В Delphi попрежнему работает 10-15 секунд, а служба работает дальше. Так и должно быть?





 
DieHard   (2003-06-26 11:34) [16]

нет
проверь, точно ли запускаешь одни и те же экзешники


 
andrey__   (2003-06-26 13:31) [17]

>DieHard © (26.06.03 11:34)
Запускаю одни и те же экзешники.

Почему-то сечас при запуске в Delphi запускается и сразу выходит (не работает и прежних 10 с.)

Сама служба работает(постоянно пишет в файл) если запустить.


 
andrey__   (2003-06-26 13:54) [18]

Когда запускаю в "Службе" а потом в Delphi работает прежние 10-15 с.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.07.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.008 c
1-31348
Vint_XXX
2003-06-27 10:29
2003.07.10
ListView


1-31301
Sergei Nevazhnyi
2003-06-25 18:03
2003.07.10
Работа с canvas в D7


7-31551
Neznaika
2003-04-27 14:16
2003.07.10
Поблема с ctrl_alt_del в xp


14-31399
II
2003-06-24 13:03
2003.07.10
Кто нибуть знаком с математикой оптимизации рецептов комбикормов?


1-31264
A_ndrew
2003-06-30 00:22
2003.07.10
как можно в окне (зная его название) найти компонент





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский