Daily Archives: 2012年6月30日

[C#,Win32API]ユーザがしばらくPCを使用していなければ自動ログオフさせる

2012年6月30日 (カテゴリ: C#:)

WindowsではユーザがしばらくPCを使用していな時に、スクリーンセーバーを起動させたり、自動デフラグを行わせたりしています。 このように、PCがアイドルの時に限って何らかの処理を行わせるようにしておくと、ユーザに負担を掛けることなく(処理が重くなることなく)タスクを実行できるので便利です。 このような処理を行うためには、ユーザが”何もしていない”時間を計測する必要なのですが、GetLastInputInfo()というWin32API関数を使用すると、この情報を取得可能です。 関数仕様は以下の形で、データの取得に成功すると戻り値に0以外の値が返ってきてくれます。 BO…


続きを読む

PICで一定時間のスリープ(ウェイト)を行う

2012年6月30日 (カテゴリ: PIC:)

アセンブラではスリープ処理も,ひと苦労 プログラムの中で一定時間処理を止めたい場合、C言語だとsleep()関数を使用することで秒単位のスリープ処理を行えます。 一方、PICでアセンブラを使って処理を行う場合はどうかというと、残念ながら一定時間処理を待つという命令は有りません。アセンブリのニーモニック一覧を見るとSLEEPというのがあるので、一見するとこれでいけそうな気もしますが、残念ながらPICのSLEEPはMPU自体をスリープモードにする(Windowsでいうサスペンド状態)命令なのでこれは使えません。 このような場合、PICではループを空回しする事でビジーウェイトを作り、所定の時間だけ経…


続きを読む