-
[Java] 점심시간 자동 화면 잠금Spring/mini Project 2023. 12. 26. 10:59728x90반응형
- 만든 이유
시간을 안보고 일하다 보면 점심시간인지 모르는 경우가 있기 때문이다.
- 이걸 모든 직원컴퓨터에서 실행하여 점심시간이 되면 다들 빨리 일어났으면 좋겠다.
- 최종적으로 만들고자 하는 결과물
컴퓨터 부팅시 자동으로 실행되게 하여 점심시간에 화면이 잠겼으면 좋겠다.
- 아직 부팅시 자동 실행은 만들지 못하였다. [2023-12-26]
소스코드
package com.lunch.breakPoint; import java.io.IOException; import java.time.LocalDateTime; import java.util.Timer; import java.util.TimerTask; /*** * 점시시간 11:45에 화면 잠금을 하는 프로그램 * @author user * */ public class LunchBreakPoint { public static void main(String[] args) { Timer timer = new Timer(); RunClass runClass = new RunClass(timer); timer.schedule(runClass, 0, 1000 * 60); } } class RunClass extends TimerTask { private Timer timer; RunClass(Timer timer){ this.timer = timer; } @Override public void run() { exec(); } public void exec() { try { LocalDateTime now = LocalDateTime.now(); // if(now.getHour() == 13 && now.getMinute() == 6){ // cancel(); // } if(now.getHour() == 13 && now.getMinute() == 17){ /*Process process = */Runtime.getRuntime().exec("rundll32.exe user32.dll,LockWorkStation"); // process.waitFor(); timer.cancel(); // 타이머 종료 System.exit(0); // 시스템 종료 } } catch (IOException e) { e.printStackTrace(); } } }
rundll32.exe
Windows 운영체제에서 DLL(Dynamic Link Library)파일을 실행하는데 사용되는 유틸리티이다.
user32.dll
Windows 사용자 인터페이스 및 그래픽 관련 함수를 제공하는 DLL 파일이다.
LockWorkStation
작업세션을 잠그는데 사용되는 명령어이다.
소스코드 작성 이후 작업
1. mvn clean install 한 후 생성된 jar파일을 powerShell을 이용하여 백그라운드 실행한다.
Start-Process -FilePath "java" -ArgumentList "-jar", "경로/JARNAME.jar" -WindowStyle Hidden
2. 실행한 jar파일이 잘 작동하는지 확인
Get-Process -Name "java" # 없는 경우 오류가 나기 때문에 아래와 같이 만들어 줄 수 있다. try{ $searchProcess = Get-Process -Name "java" $searchProcess } catch { Write-OutPut "Not Found Java File" }
3. 해당 jar파일을 종료하고 싶은 경우
kill -id id값
4. bat 파일을 만들고 싶은 경우
프로젝트 루트 디렉토리에 Name.bat 파일을 만들어주고 아래와 같은 명령어를 넣어주면 된다.
@echo off start javaw -jar 경로\lunchBreak-0.0.1-SNAPSHOT.jar
javaw는 콘솔 창 없이 Java 애플리케이션을 실행하는 명령어이다.
이렇게 하면 PowerShell에서 Get-Process -Name "java"로는 해당 프로세스를 찾을 수 없다.
찾고 싶다면 tasklist 명령어를 통해 javaw.exe가 있는지 확인해야한다.
728x90반응형'Spring > mini Project' 카테고리의 다른 글
Step1-2. EC2 프리티어 Jenkins 서버 터지는 현상 해결 (0) 2024.02.07 Step1-1. Jenkins에서 GitHub Webhook 사용 및 실행 (0) 2024.02.06 Step1. Jenkins 설치 후 프로젝트 Build 및 Start (1) 2024.02.06 [Spring boot & React] mini project 시작 (2) 2023.11.28 나만의 API 서버 만들기 - 1 (1) 2023.11.22