Qiita Conference 2025

ミノ駆動 (@MinoDriven)

プロフェッショナルとしての成長──「問題の深掘り」が導く真のスキルアップ

0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

タスクスケジューラでexe実行時、コンソール画面を出さない2つの解決策

Last updated at Posted at 2019-03-07

解決したい問題

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の三行目
oShell.run """"+"C:\hoge.bat"+"""",0みたくダブルクオーテーションで囲っている理由は、開発時のPathに 【C:\Users\hoge\Documents\Visual Studio 2015\】みたく空白が入っていた為。

解決策2(状況が限られる)

タスクスケジューラ登録時のセキュリティオプションで、
”ユーザーがログオンしているかどうかにかかわらず実行する(W)”にチェックを入れる。

2019-03-07_21h14_13.png

ここにチェックを入れておけば、実行時にコンソールが出なくなる。
ログオンしているユーザと、タスク実行時に使うユーザを変えることでも出来るらしい。

あとがき

テスト環境では解決策1であるプログラムを動かしていたが、そのプログラムを入れる先は必ず”ユーザーがログオンしているかどうかにかかわらず実行する(W)”にチェックを入れる。となっていたため、最終的にbatとvbsがいらなくなった。
他にコンソールを出さない方法があればご教授願いたい。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up

Qiita Conference 2025 will be held!: 4/23(wed) - 4/25(Fri)

Qiita Conference is the largest tech conference in Qiita!

Keynote Speaker

ymrl、Masanobu Naruse, Takeshi Kano, Junichi Ito, uhyo, Hiroshi Tokumaru, MinoDriven, Minorun, Hiroyuki Sakuraba, tenntenn, drken, konifar

View event details
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?