再起動してサスペンドするUWSCマクロのスクリプトをさらしてみる。

微妙なマクロですが、たまに検索で飛んでくる方がいるので、
UWSCスクリプトをさらしてみます。
マシンブート時の待ち時間分の給料は払いません、米国で従業員が反発 - Technobahn
こんな話もありますが、いつもサスペンドからの復帰で済ませていると、
たまの再起動は鬱陶しく感じるものですからね。

常に自動ログオンしているユーザーで、
UWSCに慣れている人なら、
簡単に作成できると思います。
再起動するマクロを実行すれば、
サスペンドまでは自動です。
ファイル名やパスはDOS用の短いやつに適宜変更してください。
例:Program Files → Progra~1

3つの準備するもの

1.再起動するマクロ
2.サスペンドするマクロ
3.サスペンドするマクロのショートカット(サスペンドするマクロ.lnk)

全体の流れ

0.再起動するマクロの実行
1.サスペンドするマクロのショートカットをスタートアップフォルダにコピー
2.再起動
3.サスペンドするマクロのショートカットをスタートアップフォルダから削除
4.サスペンド

再起動するマクロ

// サスペンドするマクロのショートカットをスタートアップフォルダにコピーします。
DosCmd("Copy サスペンドするマクロのショートカットの絶対パス スタートアップフォルダの絶対パス\サスペンドするマクロ.lnk", FALSE, TRUE)

// 再起動します。
POFF(P_REBOOT)

サスペンドするマクロ

// スタートアップフォルダのショットカットを削除します。
DosCmd("DEL スタートアップフォルダの絶対パス\サスペンドするマクロ.lnk", FALSE, TRUE)

// 上でショートカットの削除がうまくいかなかった場合に備えて、
// 数分のスリープを入れておいた方がセーフモードの世話にならなくていいです。
Sleep(300)

// サスペンドします。これは休止状態に入ります。スタンバイはPOFF(P_SUSPEND2 or P_FORCE)
POFF(P_SUSPEND or P_FORCE)

一回だけ自動ログインを有効にすることもできるが…

Windows2000については確認していませんが、
WindowsXPであれば可能です。
パスワードがファイルに平文で保存されてしまうので、
セキュリティに問題がありお勧めできません。
使うのであれば、離席時のデスクトップのパスワードロック、
HDDの暗号化は必須でしょう。


全体の流れは、
0.再起動するマクロの実行
1.自動ログインを有効化
2.サスペンドするマクロのショートカットをスタートアップフォルダにコピー
3.再起動
4.自動ログインを無効化
5.サスペンドするマクロのショートカットをスタートアップフォルダから削除
6.サスペンド

再起動するマクロ(自動ログインを有効化)
//自動ログインを有効化
Exec("C:\WINDOWS\system32\control.exe userpasswords2")
USR=GETID("ユーザー アカウント")
SCKEY(USR, VK_Space)
CLKITEM(USR, "適用", CLK_BTN)
ALOGON=GETID("自動ログオン")
SENDSTR(ALOGON,"ユーザー名",1,TRUE)  // ログオンするユーザー名
SENDSTR(ALOGON,"パスワード",2,TRUE)  // パスワード
SENDSTR(ALOGON,"パスワード",3,TRUE)  // パスワードの確認
CLKITEM(ALOGON, "OK", CLK_BTN)
CLKITEM(USR, "OK", CLK_BTN)

// サスペンドするマクロのショートカットをスタートアップフォルダにコピーします。
DosCmd("Copy サスペンドするマクロのショートカットの絶対パス スタートアップフォルダの絶対パス\サスペンドするマクロ.lnk", FALSE, TRUE)

// 再起動します。
POFF(P_REBOOT)
サスペンドするマクロ(自動ログインを無効化)
//自動ログインを無効化
Exec("C:\WINDOWS\system32\control.exe userpasswords2")
USR=GETID("ユーザー アカウント")
SCKEY(USR, VK_Space)
CLKITEM(USR, "OK", CLK_BTN)

// スタートアップフォルダのショットカットを削除します。
// スタートアップフォルダのショットカットを削除します。
DosCmd("DEL スタートアップフォルダの絶対パス\サスペンドするマクロ.lnk", FALSE, TRUE)

// 上でショートカットの削除がうまくいかなかった場合に備えて、
// 数分のスリープを入れておいた方がセーフモードの世話にならなくていいです。
Sleep(300)

// サスペンドします。これは休止状態に入ります。スタンバイはPOFF(P_SUSPEND2 or P_FORCE)
POFF(P_SUSPEND or P_FORCE)