少し前から VBA で書いたマクロを動かそうとすると「プロシージャの呼び出し、または引数が不正です。」というエラーが出るようになってしまって困っていたのですが、どうもこれは今月の Windows Update のバグを踏んでしまっていた模様。
おとなしくアップデートを待てば良いみたいですが、この手の定例外パッチは最新版の Windows へのリリースが一番遅いのはなぜなんでしょうね。
2019年8月の月例更新プログラムに問題、VB6/VBA/VBScriptアプリ・マクロが応答不能に - 窓の杜
「Visual Basic 6(VB6)」で作成したアプリケーションや「Visual Basic for Applications(VBA)」で作成したマクロ、「Visual Basic Scripting Edition(VBScript)」で作成したマクロやアプリケーションが応答しなくなり、“invalid procedure call error.”というエラーが発生することがあるという。
X1Carbon に出戻りしてから、地味に困っていたのはスリープからの復帰時にセンターボタンが効かなくなってしまうことがあること。
これをなんとか出来ないかと思って調べてみたらC:\Program Files\Synaptics\SynTP\SynTPEnh.exe の動作不良の問題という指摘があったのでプロセスの強制終了&再起動をを試してみたところ、これがビンゴ。
ひま人の活動報告 ThinkPadのセンターボタンが動作しなくなった場合の対処法
タスクマネージャのプロセスのタグを開くとSynTPEnh.exeっていうプロセスがある。
このプロセスが動作していないのが原因で、動作させるために一度プロセスを終了する。
いちいち作業をするのが面倒なので、下記のような強制再起動ようの VBS を用意してダブルクリック一撃で再起動できるようにしました。
restartSynTPEnh.vbs
WIndows 8.1 が Windows 8.1 Update になっているかというのは、今後も Windows 8.1 を使い続けていく上で重要だったりするのですが、これがとにかく見分けづらいのです。先日の自分の WIndows 8.1 が Windows 8.1 Update になっているかどうか確認する方法ではスタート画面に検索アイコン(虫眼鏡)が出ているかどうかがキーになっていました。
やはりこれでは心許ないので、バシッと文字で確認できる方法があればいいのになと思っていたら、同じように考えていた人がいたらしく @IT でバージョンを識別する vbs が公開されていたのでメモ。これを使えば画像のような感じで、わかりやすくバージョンが確認できます。これなら見間違える心配もありませんね。
山市良のうぃんどうず日記(11):Windowsのバージョンを識別するために昔作ったスクリプトたち - @IT
筆者のアイデアはこうです。Win32_QuickFixEngineeringクラスのHotfixIDプロパティを検索し、Windows 8.1 Updateの更新プログラムを示す「KB2919355」が存在するかどうかで判断するのです。
以前にパフォーマンスモニタとタスクを使ってディスク容量を監視する方法をまとめたのですが、これには SMTP Auth に対応していないという致命的な問題があったので、何とかするべく調べてみたところ VBS を使って実現するのが良さそうだったので、サンプルを拝借して自分なりにまとめてみました。この機会に CDO で任意のヘッダを設定する方法もわかったのでいい勉強になりました。
こちらは vbs なので、やろうと思えばいろいろとカスタマイズが効きますからプログラムが得意な人にはオススメです。
[続・Windows標準機能だけで、ディスクの残容量を監視する の続きを読む]Windowsサーバ用にバッチを作ってタスクで自動起動するようにしてみたのですが、起動時間になると突然画面に黒いウィンドウが出てきて邪魔なので、何とかする方法がないかと探してみたらvbsを使ってbatを起動するとウィンドウを非表示にできることがわかりました。
VBScriptを使いましょう。
以下の部分をrun.vbsとか名前を付けて保存して下さい。Dim WShellSet WShell = WSCript.CreateObject("WScript.Shell")WShell.Run "test.bat test para",0 '非表示で実行
これ、なかなかに便利です。というか、初めからVBSでバッチを書けばいいだけなのかも。