ひとりになりたい

ノーストレスで生きていく

【俺的備忘録】ログインしてもらったWindows PCで画面をロックしない方法

ログインしてもらったWindows PCで、画面をロックしないようにする方法を記載します。

 

Power Shellで下記処理を実行します。

 

 

# 変数定義
$sleep_time = 30

# ループ処理
while ($true){
[System.Windows.Forms.SendKeys]::SendWait("{ESC}")
 sleep $sleep_time
}

 

 

処理の説明

30秒間隔で、[ESC]キーを押す処理を行っています。

これにより、無操作をなくし、画面をロックしないようにする仕掛けです。

終了する場合は「Ctrl」+「C」またはPower Shellの画面を閉じます。

 

補足

・「見つかりません」と表示される場合について

 sendkeysを実行した場合に下記メッセージが出る場合があります。

 

 

PS C:\Users\admin> [System.Windows.Forms.SendKeys]::SendWait("{ESC}")

型 [System.Windows.Forms.SendKeys] が見つかりません。
発生場所 行:1 文字:1
+ [System.Windows.Forms.SendKeys]::SendWait("{ESC}")
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Windows.Forms.SendKeys:TypeName) []、RuntimeException
    + FullyQualifiedErrorId : TypeNotFound

 

 

その場合は、下記処理を実行してから、再度実行してみてください。

 

Add-Type -AssemblyName System.Windows.Forms

 

・[ESC]キー以外でもOK
 今回、[ESC]キーを押す処理をしていますが、ほかのキーでも可能です。

 もし[ESC]キーで、何かの処理がされてしまうプログラムが表示している場合、勝手に処理がされてしまいますので、その場合は別のキーを選択するなど検討してください。
 [ESC]以外のキーは下記サイトを参考にしてください。

learn.microsoft.com

 

最後に

セキュリティ設定などで、スクリーンセーバー設定の変更ができず、また、
ログインしてもらったPCなどで作業する場合に有効かと思います。

※滅多にないケースだと思いますが、備忘として残したいと思います。

 

ちなみに、マウスカーソルの移動処理でも試しましたが、こちらはなぜか、うまくできませんでした。(ロックされてしまいます。)

※試したマウスカーソルの移動関数。
 [System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point($x, $y) 

この点はどこかで検証したいと思います。