Windows 서비스를 통해 잠금/잠금 해제/시작/종료/로그 오프 및 로그온 이벤트를 캡처하고 각 이벤트에 대한 기능을 실행하여 시간을 캡처 할 수 있습니다. 이벤트가 발생했을 때.java windows 서비스로 Windows 이벤트 캡처하기
Windows 서비스를 통해이 작업을 수행하므로 수동으로 프로그램을 실행할 필요가 없습니다. 그리고이 프로그램을 자바 언어로 실행하고 싶습니다.
Windows 서비스를 통해 잠금/잠금 해제/시작/종료/로그 오프 및 로그온 이벤트를 캡처하고 각 이벤트에 대한 기능을 실행하여 시간을 캡처 할 수 있습니다. 이벤트가 발생했을 때.java windows 서비스로 Windows 이벤트 캡처하기
Windows 서비스를 통해이 작업을 수행하므로 수동으로 프로그램을 실행할 필요가 없습니다. 그리고이 프로그램을 자바 언어로 실행하고 싶습니다.
JNA을 사용해야하며 기본 Windows 호출로 캡처 코드를 작성해야합니다.
역방향 시뮬레이션 OS 이벤트를 수행하는 클래스 java.awt.Robot이 있지만 순수 Java로 이벤트를 캡처하는 방법을 알지 못합니다.
C#에서는 매우 간단합니다. C#으로 코드를 보여줄 수 있습니다. Java를 언어로 사용하려면 Ja.Net으로 변환 할 수 있습니다. (실제로 JVM을 사용하려면이 방법이 도움이되지 않습니다).
true로 CanHandleSessionChangeEvent 속성을 설정 :
당신이 사용자 로그온/로그 오프 및 세션에 대한 정보를 덤프 수있는 서비스 구현을 오버라이드 OnSessionChange 이벤트에/// <summary>
/// The main entry point for the application.
/// </summary>
static void Main()
{
ServiceBase[] ServicesToRun;
LogService logService = new LogService();
logService.CanHandleSessionChangeEvent = true;
ServicesToRun = new ServiceBase[]
{
logService
};
ServiceBase.Run(ServicesToRun);
}
이 /가
protected override void OnSessionChange(SessionChangeDescription changeDescription)
{
EventLog.WriteEvent(
new EventInstance(100, 0, EventLogEntryType.Information),
String.Format("Reason: {0}, SessionId:{1}", changeDescription.Reason, changeDescription.SessionId));
base.OnSessionChange(changeDescription);
}
서비스를 등록하고 시작하고 이벤트 로그에 기록을 봅니다.