スクリーンセーバーを起動する

 scrファイルを使う

 まず、Windowsの検索機能を使って、拡張子が"scr"になっているファイルを探してください。そうすると"C:\Windows\System32"のフォルダ内に入っていると思います。そのscrを使えばスクリーンセーバーを起動すること出来ます。使い方は簡単、『他のアプリケーションを実行する』でやったことと同じことをやります。つまりファイル名を指定するだけ。"C:\Windows\System32"というフォルダは特別なためWindowsは既に知っているので、指定しても良いですが、指定しなくても動きます。使い方は次のようにします。

import System
from System.Diagnostics import Process
Process.Start("ssmyst.scr")

実はこれ、スクリーンセーバーをプレビューしているだけなんです。なので、これをスクリーンセーバーと同じ感じにパスワードでロックしたように見せるには、小細工が必要です。
小細工のようにやります。

import System
from System.Diagnostics import Process
p = Process.Start("ssmyst.scr")
p.WaitForExit() ←スクリーンセーバーが止まるのを待ちます
Process.Start("rundll32.exe","user32.dll,LockWorkStation") ←ロックします

まず3行目まではスクリーンセーバーを起動させるところ、但しスクリーンセーバーを起動しっぱなしでほっとくのではなく、プロセスオブジェクト"p"として管理します。そして、ProcessオブジェクトのWaitForExitメゾットでスクリーンセーバーが止まるのを待ちます。そして、次にパソコンをロックするコマンドを実行します。

 つまり、スクリーンセーバーでパソコンをロックしているのではなく、スクリーンセーバーが止まった後に、パソコンをロックしています。確かに動作は違いますが、パソコンを使っているユーザーから見れば同じに見えます。