Я новичок в написании приложений Windows Service и у меня возникли проблемы.
Написанный на Delphi, я написал обычное приложение для Windows для проверки и отладки основных частей кода, и теперь мне нужно преобразовать его в службу NT.
Мой код должен запустить приложение Windows, которое я делаю, используя следующий код.
function Run_Program : boolean;
var SEInfo : TShellExecuteInfo;
ExitCode : DWORD;
begin
Result := false;
FillChar(SEInfo, SizeOf(SEInfo),0);
SEInfo.cbSize :=SizeOf(TShellExecuteInfo);
With SEInfo do
begin
fMask := SEE_MASK_NOCLOSEPROCESS;
Wnd := **Application.Handle**;
lpFile := PChar(Exe_Prog);
lpParameters := PChar(Exe_Param);
nShow := SW_SHOWNORMAL;
end;
If ShellExecuteEx(@SEInfo) then
begin
repeat
Application.ProcessMessages;
GetExitCodeProcess(SEInfo.hProcess, ExitCode);
until (ExitCode <> STILL_ACTIVE) OR Application.Terminated OR NOT q1.fieldbyName('Delay').AsBoolean;
If ExitCode <> STILL_ACTIVE then Record_Event(Exe_Prog + ' completed ') else
Record_Event(Exe_Prog + ' activated ');
Result := true;
end
else Record_Event('Error Starting '+ Exe_Prog+ ' ');
end;
Когда это помещено в сервисное приложение, компилятор завершается с 3 ошибками: необъявленные идентификаторы.
1) ручка
2) ProcessMessages и
3) Прекращено.
У меня вопрос: есть ли эквивалентные процедуры, которые можно использовать в приложении-службе, или я должен по-другому подходить к проблеме в приложении-службе?
Любая помощь будет оценена