スクリーンセーバーをプログラムから解除する2009/12/25あんまりネタもないので,小ネタをば。指紋認証の読み取りソフトなんかを作るとき,指紋センサ以外の入力デバイスを設置したくないことがあります。余計な入力デバイスを置くと,ユーザさんがこれを使っちゃう可能性があって,セキュリティ等々の関係で問題があるからです。一方で,こういう場合にも,しばらく操作しないときはスクリーンセーバーを起動したかったりもします。別に画面出しっぱなしでもいいんですけどね。なんとなく雰囲気で起動させたくなる。キーボードのような入力デバイスがないと,物理的なデバイスからこのスクリーンセーバーを解除する手段がなくなってしまう。そこで,こいつをどうやって解除しよう,というのがここでのお題です。指紋認証のドライバからもらう入力のシグナルをトリガにして,無理矢理プロセスを殺します。乱暴だけれども,これでも動くし,実際にこの方法を勧めているところもあります。こゆのはさすがにアレなので,別の方法を考える。考えてみると,これって単純にキーボードを押下するように,プログラムからエミュレートしちゃえばいいんですよね。0;}上のプログラムを動かした直後に,スクリーンセーバーを起動します。プログラムを動かしてから,10秒後にスクリーンセーバーが解除されれば成功。関数をトリガとなるイベントと置き換えれば,一丁上がりです。関数を使うのがお作法らしいです。構造体がないと怒られる)。