프로젝트의 일부로 Delphi를 사용하여 Windows NT 서비스를 구현해야합니다. 작업의 복잡성 (그리고 "시스템 문제"에 대한 지식 감소)으로 인해 구현을 시작하기 전에 (프로그램이 완료되었고이 작업 만 대기 중임), 나에게 아이디어를 줄 수있는 모든 사람에게 매우 감사 할 것입니다 주제에.클라이언트 (서버가 아님), OnExecute와 OnStart의 Delphi NT 서비스
내 질문을하기 전에 프로젝트의 성격에 대해 몇 마디 말씀 드리겠습니다. Delphi에서 작성한 것은 NT 이벤트 뷰어 로그를 읽고 다른 곳으로 보냅니다. 이 기능의 자동화로 인해 Windows NT 서비스로 구현하도록 요청 받았습니다. 이 서비스는 모든 종류의 서버 (TCP, SMTP ...)가 아님을 강조해야합니다. 클라이언트로만 제공되며 로그를 읽고 전송합니다. 따라서 (필자는) 다중 쓰레드가 필요 없으며, 다중 쓰레드 프로그래밍이 많은 사람들에게 큰 뼈이기 때문에 나는 이것을 만족 스럽다. 나는이 "일상적인"것을 10 초에서 1 분 사이의 어떤 범위로 돌리고 싶다. 이 조건에서 NT 이벤트 뷰어 레코드를 읽는 작업은 일반적으로 짧지 만 몇 초가 걸리지 만 경우에 따라 서비스가 중지되거나 실패 할 때 길어질 수 있습니다 (1 분 이상) 언젠가는 보내지 않은 기록이 누적되었습니다. 이 후자의 경우 운영자는 현재 전송을 완료 할 때까지 서비스를 중지하지 않도록 설명서에 지시합니다 (최소 종료는 아님). 이것은 업데이트 된 일부 텍스트 디버그 파일에서 볼 수 있습니다.
는- 비 자문 아주 많이 당신을 감사합니다 "델파이 서비스 응용 프로그램 중지 15초 후, 타이머가 실행되지"
는이 사이트에 관련된 거의 모든 기사 아래 특히 두 가지를 여러 번 읽고 Tolderlund
TTimer의도 "델파이를 사용하여 서비스 응용 프로그램을 만들기위한 튜토리얼"
- 로 두 번째 기사에 대한 핀에 의해 -usage
지금 바로이 문서 2에 기반 :
질문 : 내 조건 - OnExecute 솔루션을 사용할 수 있습니까?
나는 내가 생각하기에 내가 할 수 있으면 좋겠다. 나는 멀티 스레딩이 필요 없다. 코드에서 훨씬 더 간단합니다.
안부 알틴
Windows는 이미 이벤트 로그를 다른 대상으로 전달할 수 있습니다. 왜 다시 열어야합니까? – whosrdaddy
필드에서 정보를 추출하여 열로 변환해야하기 때문입니다. 추출은 내가 찾고있는 정보에만 해당됩니다 최고, Altin – altink