はじめに
「このままじゃ俺の人生駄目になる」
2021年11月初旬。私はそう感じた。
在宅勤務のエンジニアであるはずの私は、いつの間にかSkyrimの世界を救う伝説のDragonbornになっていた。
皆まで言うまい・・・。私は意志の弱い人間なのだ。
vbsでゲームを起動できるようにする
まずは、vbsでゲームを起動できるようにする。
次のようなvbsファイルを作成して実行してみよう。
Option Explicit
Dim objWshShell
Dim dayName
'シェルオブジェクトの作成
Set objWshShell = WScript.CreateObject("WScript.Shell")
objWshShell.Run "ゲームの実行ファイルのパス"
'シェルオブジェクトの解放
Set objWshShell = Nothing
パスの指定が間違っていなければゲームが起動したはずである。
曜日による制限を実装する
次に曜日による制限を実装する。
こちらはCase文で実現する。具体的には次のコードである。
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歳のときからやってること変わってないんだな。成長しない男だ。