自己紹介

自分の写真

朝ネスのマスターやってる人。
巷では「けもネス」って呼ばれてるけど、「朝ネス」です。
どうか間違えないでください。

2017年1月28日土曜日

SAI2で定期自動保存

ちなみにVBSの実行タスクはこれね。

タイトル通りです。
SAI2で謎落ちとか謎エラーとかで保存がああああああってなるので、正直結構辛いのでVBSでSAI2のファイルを定期的に自動保存するスクリプト書いてみた。

15分に1度、「sai2 (*)」という文字が入っているタイトルを探して、それをアクティブにしたのちCtrl+Sキーを押すというもの。よくある「sai2が先に立ち上がってないとだめ」という事はないので自由に叩きましょう。

ちなみに実行後、無限ループするから多重実行は気を付けてね。多重実行したときとか、要らないときはVBSはタスクからキルしてね。

あとVBSが何なのかとか、VBSの作り方とか、起動の仕方とか、ソースの環境依存の問題とかはググればなんとかなるよ。たぶんね。

以下ソース
'寝るミリ秒数
Dim SleepTime
SleepTime = 15*60*1000'15分間に1度動く
Dim strName
'strName= "PaintTool SAI"'前方一致(常に一定時間後保存を行う)
strName= "sai2 (*)"'後方一致(拡張子が.sai2のファイルを編集しているときのみ保存を行う)
'始まるよー
Main()

'メイン関数
Function Main()
  Dim objShell
  'シェルのオブジェクトを作成する
  Set objShell = CreateObject("WScript.Shell")

  On Error Resume Next
  Do
    If objShell.AppActivate(strName) Then objShell.SendKeys("^s")
    WScript.Sleep SleepTime'ここでスリープ
  Loop
  GetError()
  Err.Clear
  On Error Goto 0

  Set objShell = Nothing
End Function

'例外通知
Function GetError()
  GetError = True
  If Err.Number <> 0 Then
    MsgBox "例外:" & Err.Number & ":" & Err.Description
    Exit Function
  End If
  GetError = False
End Function

0 件のコメント:

コメントを投稿