画面右上にカーソルでスクリーンセイバーの起動時間を長く
最近仕事でノートパソコンを使って会議とか出て長時間話していると目の前でスクリーンセイバーが立ち上がってうざい。けど普通の時はそれなりに短めに設定しておかないとトイレに行ったら誰でも僕のパソコンが使えたりして仕事中にあんな画面を見ているのが丸見えとかはともかくたまたま通りかかった来客に企業秘密のあんなことが丸見えでとかで怒られたりしたら困る。会議中だけ長めに設定変更したりするのは面倒くさいし絶対元に戻すの忘れるしうわー
みたいな人のために少し考えてこんな操作にしました。普段=短めに設定 スクリーンセイバーを動かしたくないとき=マウスカーソルを滅多に持って行かないけど持って行きやすい場所(画面右上)に持って行く=スクリーンセイバー起動まで1時間
;-------------------------------------------------------- ; 画面右上にカーソルでスクリーンセイバーの間隔を長く ScreenSaverTimeoutStopping:=0 ScreenSaverTimeoutStopping_OLDTIMEOUT:=0 SetTimer, TouchScreenTopLeftStopScreenSaver, 1000 TouchScreenTopLeftStopScreenSaver: TouchScreenTopLeftStopScreenSaver_func() return TouchScreenTopLeftStopScreenSaver_func(){ global ScreenSaverTimeoutStopping, ScreenSaverTimeoutStopping_OLDTIMEOUT timeout_new = 3600 ; 長く = 1時間 CoordMode,Mouse,Screen MouseGetPos, OutputVarX,OutputVarY SysGet, OutputVarWX,0 SPI_GETSCREENSAVETIMEOUT := 0xE SPI_SETSCREENSAVETIMEOUT := 0xF ; マウスカーソルが画面右上なら if( OutputVarWX = OutputVarX +1 && OutputVarY=0 ){ if( ScreenSaverTimeoutStopping = 0 ){ ; 今の設定を保存して長く ScreenSaverTimeoutStopping := 1 DllCall("SystemParametersInfo","uint",SPI_GETSCREENSAVETIMEOUT,"uint",0,"int*",ScreenSaverTimeoutStopping_OLDTIMEOUT,"uint",0) DllCall("SystemParametersInfo","uint",SPI_SETSCREENSAVETIMEOUT,"int",timeout_new,"uint",0,"uint",0) } }else{ if( ScreenSaverTimeoutStopping = 1 ){ ; 保存した設定に戻す ScreenSaverTimeoutStopping = 0 DllCall("SystemParametersInfo","uint",SPI_SETSCREENSAVETIMEOUT,"int",ScreenSaverTimeoutStopping_OLDTIMEOUT,"uint",0,"uint",0) } } }