작업 스케줄러에서 exe를 실행할 때 콘솔 화면을 표시하지 않는 두 가지 솔루션

해결하려는 문제



Windows 서비스를 만들고 그 exe를 작업 스케줄러에 등록하고 정기적으로 움직이고 싶다.
그러나 매번 콘솔 화면이 나온다. 어떻게 하자….

솔루션 1



①exe를 실행하는 bat를 만들어,
②bat를 움직이는 vbs를 만들어,
③ 그 vbs를 태스크 스케줄러에 등록한다.

C:\hoge.exe
C:\hoge.bat
C:\hoge.vbs

hoge.bat
@echo off
call "C:\hoge.exe"

hoge.vbs
Dim oShell
Set oShell = WScript.CreateObject("WSCript.shell")
oShell.run  """"+"C:\hoge.bat"+"""",0
Set oShell = Nothing

 
※hoge.vbs의 3행째oShell.run """"+"C:\hoge.bat"+"""",0 미타쿠 더블 쿼테이션으로 둘러싸고 있는 이유는, 개발시의 Path에 【 C:\Users\hoge\Documents\Visual Studio 2015\ 】미타쿠 공백이 들어가 있었기 때문에.

해결책 2(상황이 제한됨)



작업 스케줄러 등록 시 보안 옵션으로,
"사용자가 로그온했는지 여부에 관계없이 실행(W)"을 선택합니다.



여기에 체크를 넣으면 런타임시 콘솔이 나오지 않게 된다.
로그온 한 사용자와 작업을 실행할 때 사용하는 사용자를 변경할 수 있습니다.

후기



테스트 환경에서는 해결책 1인 프로그램을 움직이고 있었지만, 그 프로그램을 넣는 곳은 반드시 ”ユーザーがログオンしているかどうかにかかわらず実行する(W)”にチェックを入れる。 가 되었기 때문에, 결국 bat와 vbs가 필요 없게 되었다.
그 밖에 콘솔을 내지 않는 방법이 있으면 교수 바랍니다.

좋은 웹페이지 즐겨찾기