LoginSignup
0
0

More than 1 year has passed since last update.

土日だけゲーム起動できるようにするスクリプト作った

Posted at

はじめに

「このままじゃ俺の人生駄目になる」
2021年11月初旬。私はそう感じた。

在宅勤務のエンジニアであるはずの私は、いつの間にかSkyrimの世界を救う伝説のDragonbornになっていた。
皆まで言うまい・・・。私は意志の弱い人間なのだ。

vbsでゲームを起動できるようにする

まずは、vbsでゲームを起動できるようにする。

次のようなvbsファイルを作成して実行してみよう。

game.vbs
    Option Explicit

    Dim objWshShell
    Dim dayName
    'シェルオブジェクトの作成
    Set objWshShell = WScript.CreateObject("WScript.Shell")
    objWshShell.Run "ゲームの実行ファイルのパス"
    'シェルオブジェクトの解放
    Set objWshShell = Nothing

パスの指定が間違っていなければゲームが起動したはずである。

曜日による制限を実装する

次に曜日による制限を実装する。
こちらはCase文で実現する。具体的には次のコードである。

game.vbs
Option Explicit

Dim objWshShell
Dim dayName
'シェルオブジェクトの作成
Set objWshShell = WScript.CreateObject("WScript.Shell")

    '曜日名を取得する
    dayName = Weekday(Now)
    '曜日によって処理を変える
    Select Case dayName
    ' 1: 日, 2: 月, 3: 火, 4: 水, 5: 木, 6: 金, 7: 土
        ' 土日だけ
        Case 7, 1
            objWshShell.Run "ゲームの実行ファイルのパス"
        Case Else
            MsgBox "Do your work!!!"
    End Select

'シェルオブジェクトの解放
Set objWshShell = Nothing

月曜日が1ではないので注意。カレンダーを思い浮かべると納得できる。
土日以外実行すると、「Do your work!!!」と怒られるようになっている。

ゲームとスクリプトを結びつける

スタートメニューからゲームを起動する際に参照されるショートカットの参照先を変更していく。

そもそも、スタートメニューは通常下記のフォルダに格納されているショートカットが表示されているに過ぎない。
C:\Users\{ユーザ名}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs

例えば、Steamに関しては下記のフォルダにまとめられている
C:\Users\{ユーザ名}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Steam
ここに登録されているショートカットがゲームの実行ファイルに紐付いている。

対象のショートカットを右クリック > プロパティ とすすみ、
「リンク先」の項目を作成したスクリプトをのパスに変更する。

試しに、スタートメニューからゲームを起動しようとすると「仕事しろ!」と怒られる。

むすび

これで、平日の日中は仕事に集中できる。
深夜に半泣きで実装しなくて済むのだ。

余談ですが、Skyrim発売から10年だそうです。
20歳のときからやってること変わってないんだな。成長しない男だ。

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
0
0