From 11d17c6e82022aa708fe472aaa3295c436bf2d16 Mon Sep 17 00:00:00 2001 From: Ituki Kirihara Date: Sun, 17 May 2015 13:22:44 +0900 Subject: [PATCH 1/1] =?utf8?q?Windows=E3=83=AD=E3=83=83=E3=82=AF=EF=BC=86?= =?utf8?q?=E3=83=87=E3=82=A3=E3=82=B9=E3=83=97=E3=83=AC=E3=82=A4=E3=81=AE?= =?utf8?q?=E9=9B=BB=E6=BA=90=E3=82=92=E3=82=AA=E3=83=95=E3=81=AB=E3=81=99?= =?utf8?q?=E3=82=8B=E3=83=84=E3=83=BC=E3=83=AB=20=E5=88=9D=E6=9C=9F?= =?utf8?q?=E3=83=90=E3=83=BC=E3=82=B8=E3=83=A7=E3=83=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Ituki Kirihara --- lock_and_display_off.c | 176 +++++++++++++++++++++++++++++++++++++++++++++++ lock_and_display_off.exe | Bin 0 -> 56320 bytes lock_and_display_off.txt | 63 +++++++++++++++++ 3 files changed, 239 insertions(+) create mode 100644 lock_and_display_off.c create mode 100644 lock_and_display_off.exe create mode 100644 lock_and_display_off.txt diff --git a/lock_and_display_off.c b/lock_and_display_off.c new file mode 100644 index 0000000..5f9214b --- /dev/null +++ b/lock_and_display_off.c @@ -0,0 +1,176 @@ +#if !defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0500) + #undef _WIN32_WINNT + #define _WIN32_WINNT 0x0500 +#endif +#include +#include +#include + +#if _MSC_VER +#pragma comment(lib,"user32.lib") +#endif + +/* + + Windowsのロックと、ディスプレイの電源オフを行います。 + ディスプレイの電源オフに関しては、http://www.knonline.net/d/?date=20080123 を参照しています。 + + usage: + lock_and_display_off + Windowsをロックし、ディスプレイの電源をオフにします + オプション: + -h + ヘルプを表示します + -lock + Windowsをロックします(デフォルト) + -nolock + Windowsをロックしません + -off + ディスプレイの電源をオフにします(デフォルト) + -nooff + ディスプレイの電源をオフにしません + -lockfirst + 最初にWindowsをロックし、次にディスプレイの電源をオフにします(デフォルト) + -offfirst + 最初にディスプレイの電源をオフにし、次にWindowsをロックします + + 隠しオプション + -wait1st ミリ秒 + 1個目の処理前に指定したミリ秒だけSleepします 有効範囲 0(デフォルト:Sleepしない)~WAIT_MSEC_MAX + これを指定しなくてもEXEC_WAITミリ秒(1秒)は強制Sleepしています。 + -wait2nd ミリ秒 + 2個目の処理前に指定したミリ秒だけSleepします 有効範囲 0(デフォルト:Sleepしない)~WAIT_MSEC_MAX + -waitDisplayOffDelay ミリ秒 + ディスプレイの電源をオフにする際、省電力モード→オフの処理間に指定したミリ秒だけSleepします + 有効範囲 0(デフォルト:Sleepしない)~WAIT_MSEC_MAX + +*/ + +#define WAIT_MSEC_MAX (60*1000) +#define EXEC_WAIT 1000 + +int cmdRet(const char* str) +{ + if(str) fprintf(stderr,"%s\n",str); + /* print usage */ + fprintf(stderr,"usage: lock_and_display_off (-h) ([ -lock | -nolock ]) ([ -off | -nooff ])\n"); + fprintf(stderr," ([ -lockfirst | -offfirst ])\n"); + fprintf(stderr,"\toptions\n"); + fprintf(stderr,"\t\t-h : show usage(this infomation printout)\n"); + fprintf(stderr,"\t\t-lock : LockWindows(default)\n"); + fprintf(stderr,"\t\t-nolock : no LockWindows\n"); + fprintf(stderr,"\t\t-off : Display Power Off(default)\n"); + fprintf(stderr,"\t\t-nooff : no Display Power Off\n"); + fprintf(stderr,"\t\t-lockfirst : 1st LockWindows, next Display Power Off(default)\n"); + fprintf(stderr,"\t\t-offfirst : 1st Display Power Off, next LockWindows\n"); + fprintf(stderr,"\texample\n"); + fprintf(stderr,"\t\thelp> lock_and_display_off -h\n"); + fprintf(stderr,"\t\tLock and Display off> lock_and_display_off\n"); + fprintf(stderr,"\t\tLock Only> lock_and_display_off -nooff\n"); + fprintf(stderr,"\t\tDisplay off Only> lock_and_display_off -nolock\n"); + fprintf(stderr,"\n"); + fprintf(stderr,"\tversion 0.0.2011080412000\n"); + fprintf(stderr,"\tLisence: ??? (c) copyright 2011 Ituki Kirihara/NI\n"); + return 1; +} + +int LockWindows(void) +{ + if (LockWorkStation() == 0){ + return cmdRet("LockWindows:API:LockWorkStation Fail..."); + } + return 0; +} + +int DisplayOff(DWORD waitmsec) +{ + if (PostMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 1) == 0){ + return cmdRet("DisplayOff:API:PostMessage 1st stage Fail..."); + } + if (waitmsec > 0) Sleep(waitmsec); + if (PostMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2) == 0){ + return cmdRet("DisplayOff:API:PostMessage 2nd stage Fail..."); + } + return 0; +} + +int main(int argc,char* argv[]) +{ + int i; + int enableLock = 1; + int enableDisplayOff = 1; + int LockFirst = 1; + DWORD wait1st = 0; + DWORD wait2nd = 0; + DWORD waitDisplayOffDelay = 0; + char* nptr=NULL; + if (argc < 1 || argv == NULL) return cmdRet("unknown main function arg..."); + for(i=1;i WAIT_MSEC_MAX) return cmdRet("-wait1st option : msec time so long"); + }else{ + return cmdRet("-wait1st option : msec not set"); + } + ++i; + }else if(strcmp(argv[i],"-wait2nd") == 0){ + if (i+1 WAIT_MSEC_MAX) return cmdRet("-wait2nd option : msec time so long"); + }else{ + return cmdRet("-wait2nd option : msec not set"); + } + ++i; + }else if(strcmp(argv[i],"-waitDisplayOffDelay") == 0){ + if (i+1 WAIT_MSEC_MAX) return cmdRet("-waitDisplayOffDelay option : msec time so long"); + }else{ + return cmdRet("-waitDisplayOffDelay option : msec not set"); + } + ++i; + }else{ + return cmdRet("unknown option"); + } + } + Sleep(EXEC_WAIT); + if (wait1st > 0) Sleep(wait1st); + if (LockFirst){ + if (enableLock) LockWindows(); + if (wait2nd > 0) Sleep(wait2nd); + if (enableDisplayOff) DisplayOff(waitDisplayOffDelay); + }else{ + if (enableDisplayOff) DisplayOff(waitDisplayOffDelay); + if (wait2nd > 0) Sleep(wait2nd); + if (enableLock) LockWindows(); + } + return 0; +} \ No newline at end of file diff --git a/lock_and_display_off.exe b/lock_and_display_off.exe new file mode 100644 index 0000000000000000000000000000000000000000..875471cd0f97d6087a1c461acfd1abaabcb1ef72 GIT binary patch literal 56320 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 K&zZk&4g442Ul48p literal 0 HcmV?d00001 diff --git a/lock_and_display_off.txt b/lock_and_display_off.txt new file mode 100644 index 0000000..d178f96 --- /dev/null +++ b/lock_and_display_off.txt @@ -0,0 +1,63 @@ + +Windowsロック&ディスプレイの電源をオフにするツール + +Windowsキー+LでWindowsのロックはできますが、 +ディスプレイの電源を一緒にオフにして欲しいので +そんな要望にお答え。 + +使い方 + lock_and_display_off (-h) ([ -lock | -nolock ]) ([ -off | -nooff ]) + ([ -lockfirst | -offfirst ]) + オプション: + -h + ヘルプを表示します + -lock + Windowsをロックします(デフォルト) + -nolock + Windowsをロックしません + -off + ディスプレイの電源をオフにします(デフォルト) + -nooff + ディスプレイの電源をオフにしません + -lockfirst + 最初にWindowsをロックし、次にディスプレイの電源をオフにします + (デフォルト) + -offfirst + 最初にディスプレイの電源をオフにし、次にWindowsをロックします + + 使用例 + lock_and_display_off + →Windowsをロックし、ディスプレイの電源をオフにします + lock_and_display_off -h + →ヘルプを表示します + lock_and_display_off -nooff + →Windowsをロックします(ディスプレイの電源は切りません) + lock_and_display_off -nolock + →ディスプレイの電源を切ります(Windowsをロックしません) + +このソースをコンパイルするときにはuser32.libがリンクされています。 +※ソース中の#pragmaを用いてリンクしています。 + cl lock_and_display_off.cだけでコンパイルが通ります。 + bcc32の場合は自動でリンクされています。 + +なお、ディスプレイの電源オフに関しては、 + http://www.knonline.net/d/?date=20080123 +を参照しています。 + +プログラムを作ったのは +Ituki Kirihara/NI です。 +ライセンスは現在検討中。 + +プログラムを素早く起動する方法(ショートカット・キーを設定する) +http://www.atmarkit.co.jp/fwin2k/win2ktips/150use_shortcut/use_shortcut.html +に従って設定すれば、ショートカットでロック&ディスプレイ電源オフが実現できます。 + +たとえば…… +1.lock_and_display_off.exeをC:\binにコピー +2.[スタート]メニュー、[スタート]メニュー内の[すべてのプログラム]、デスクトップのいずれかで、C:\bin\lock_and_display_off.exeへのショートカットを作成 +3.ショートカットのプロパティを開き、「ショートカット」タブにある、ショートカットキーをクリック +4.設定したいショートカットをCtrl,Shift,Altの2つ以上の組み合わせ+通常キーの組み合わせでショートカットキーを設定 +5.OKボタンで確定。 + +作者の場合、Ctrl+Alt+Lを設定していますので、Ctrl+Alt+Lキーを押すと、自動でロック&ディスプレイ電源オフ状態になります。 +Windowsキー+Lの代わりに使っています。 -- 2.4.0