#はじめに
うちの会社のPCは10分でスリーンセーバが起動してしまう。その度にパスワードを入力して解除するのが面倒なため、スクリーンセーバを抑制するためだけのキーボードを作成した。
簡単に書くと
"Arduino Pro Microで一定間隔でSHIFTキーを押す"
だけのことです。
2018/02/22 : プログラムミス修正しました
#用意するもの
##Arduino Pro Micro(の互換機)
HIDとして動作するArduino Pro Microかその互換機を用意する。IOは使用しないので半田付けは不要です。
##USBケーブル
Pro Microを接続するのに使います。
#プログラム
Arduinoのサンプルスケッチを参考に、一定間隔でSHIFTキーを押下します。
//
// 2018/02/21 First Edition
// 2018/02/22 R1 AntiScreenSaverCountのカウントアップ忘れ修正
#include "Keyboard.h"
unsigned long uptime;
unsigned long uptimeLastKey;
unsigned long AntiScreenSaverCount;
void setup() // initialize the buttons' inputs:
{
uptime = millis();
uptimeLastKey = uptime;
AntiScreenSaverCount = 0;
// initialize mouse control:
Keyboard.begin();
Keyboard.releaseAll();
}
void SendShiftKey(bool bRight)
{
Keyboard.press(bRight?KEY_RIGHT_SHIFT:KEY_LEFT_SHIFT);
delay(50);
Keyboard.release(bRight?KEY_RIGHT_SHIFT:KEY_LEFT_SHIFT);
uptimeLastKey = millis();
}
void loop() {
uptime = millis();
if( (uptime - uptimeLastKey) > 420000L ) // 7分
{
SendShiftKey( AntiScreenSaverCount % 2 ); // 右SHIFT,左SHIFTを交互に押下
AntiScreenSaverCount ++; // R1
}
delay(50);
}
左シフトだけにするとこいつが表示されてしまうので、右左交互に押下するようにしています。
#起動
Arduinoに書き込み、ターゲットのPCに接続すればスクリーンセーバ抑制が図れます。キー入力時にもSHIFTキーを押下していますが、私は不便していません。
お使いの環境に合わせてキー押下間隔を調整してください。
#注意
CtrlやAltはキーとの組み合わせで別の機能が起動してしまうのでお勧めしません。
#最後に
うちの会社はUSBポートを使用禁止ですがキーボード、マウス等のHIDはOKです。これもキーボードの一種なので問題ないハズですが、ちょっとという向きには下記もお試しください。