package com.test.lockScreen;
import java.util.Date;
import com.sun.jna.Native;
import com.sun.jna.Structure;
import com.sun.jna.platform.win32.User32;
import com.sun.jna.win32.W32APIOptions;
public class LockScreen {
public static void main(String[] args) throws Exception {
Win32.LastInputInfo lastInputInfo = new Win32.LastInputInfo();
int last_input_time=0;
for(int idle_time=0;idle_time<5;){
Win32.INSTANCE.GetLastInputInfo(lastInputInfo);
if(lastInputInfo.dwTime==last_input_time){
idle_time++;
}else{
last_input_time=lastInputInfo.dwTime;
idle_time=0;
}
Date last = new Date(lastInputInfo.dwTime);
Date now = new Date();
System.out.println(last);
System.out.println(now.getTime()-last.getTime());
System.out.println("空闲: "+idle_time+" 秒");
Thread.sleep(1000);
}
}
public interface Win32 extends User32 {
public static final Win32 INSTANCE = (Win32)Native.loadLibrary("user32", Win32.class, W32APIOptions.DEFAULT_OPTIONS);
public static class LastInputInfo extends Structure {
public int cbSize = 8;
public int dwTime;
}
public boolean GetLastInputInfo(LastInputInfo lastInputInfo);
}
}
import java.util.Date;
import com.sun.jna.Native;
import com.sun.jna.Structure;
import com.sun.jna.platform.win32.User32;
import com.sun.jna.win32.W32APIOptions;
public class LockScreen {
public static void main(String[] args) throws Exception {
Win32.LastInputInfo lastInputInfo = new Win32.LastInputInfo();
int last_input_time=0;
for(int idle_time=0;idle_time<5;){
Win32.INSTANCE.GetLastInputInfo(lastInputInfo);
if(lastInputInfo.dwTime==last_input_time){
idle_time++;
}else{
last_input_time=lastInputInfo.dwTime;
idle_time=0;
}
Date last = new Date(lastInputInfo.dwTime);
Date now = new Date();
System.out.println(last);
System.out.println(now.getTime()-last.getTime());
System.out.println("空闲: "+idle_time+" 秒");
Thread.sleep(1000);
}
}
public interface Win32 extends User32 {
public static final Win32 INSTANCE = (Win32)Native.loadLibrary("user32", Win32.class, W32APIOptions.DEFAULT_OPTIONS);
public static class LastInputInfo extends Structure {
public int cbSize = 8;
public int dwTime;
}
public boolean GetLastInputInfo(LastInputInfo lastInputInfo);
}
}