使用java windows服务捕获windows事件

使用java windows服务捕获windows事件,java,windows-services,event-log,Java,Windows Services,Event Log,我想通过windows服务捕获锁定/解锁/启动/关闭/注销和登录事件,然后我想为每个事件启动一个函数,以便捕获事件发生的时间 我想通过windows服务执行此操作,这样我就不需要手动运行该程序。我想用java语言运行这个程序 看起来您需要使用本机Windows调用并编写捕获代码 有一个类的作用正好相反——模拟操作系统事件,但我不知道用纯Java捕获事件的方法 看起来您需要使用本机Windows调用并编写捕获代码 有一个类的作用正好相反——模拟操作系统事件,但我不知道用纯Java捕获事件的方法 在

我想通过windows服务捕获锁定/解锁/启动/关闭/注销和登录事件,然后我想为每个事件启动一个函数,以便捕获事件发生的时间


我想通过windows服务执行此操作,这样我就不需要手动运行该程序。我想用java语言运行这个程序

看起来您需要使用本机Windows调用并编写捕获代码


有一个类的作用正好相反——模拟操作系统事件,但我不知道用纯Java捕获事件的方法

看起来您需要使用本机Windows调用并编写捕获代码

有一个类的作用正好相反——模拟操作系统事件,但我不知道用纯Java捕获事件的方法

在C#中,这相当简单。我可以向您展示C#中的代码,如果您想使用Java作为语言,您可以将其转换为Ja.Net。(如果您真的想使用JVM,这不会有多大帮助)

  • 创建空的C#服务
  • 在程序主方法中,将CanHandleSessionChangeEvent属性设置为true:

    /// <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);
    }
    
  • 注册服务,启动它并查看事件日志中的记录

  • 在C#中,这相当简单。我可以向您展示C#中的代码,如果您想使用Java作为语言,您可以将其转换为Ja.Net。(如果您真的想使用JVM,这不会有多大帮助)

  • 创建空的C#服务
  • 在程序主方法中,将CanHandleSessionChangeEvent属性设置为true:

    /// <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);
    }
    
  • 注册服务,启动它并查看事件日志中的记录