HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2020
0130
トノロックの解除を検出する方法3解決


トノ

リンク

2020/1/30(Thu) 21:20:02|NO.89375

Windows をロックし、ロックされている間は何もせずに待機しておき、
ロックが解除されたときに続きの処理を行なうようなツールを
作成しようとしています。

ロックするのは

#include "user32.as" LockWorkStation
でできるということが分かったのですが、ロックが解除されたことを
検出する方法(というか、現在ロックされているかを判別する方法)が
分かりません。

どのようにすればできるでしょうか。



この記事に返信する


MillkeyStars

リンク

2020/1/30(Thu) 23:00:33|NO.89376

Windows のステーション(デスクトップ)をロック・アンロックなどの通知は、WTSRegisterSessionNotification (Wtsapi32.dll) が担当しています。
下記サンプルを作りましたので参考にしてください。

#uselib "Wtsapi32.dll" #cfunc WTSRegisterSessionNotification "WTSRegisterSessionNotification" int,int #func WTSUnRegisterSessionNotification "WTSUnRegisterSessionNotification" int #define NOTIFY_FOR_THIS_SESSION 0 #define NOTIFY_FOR_ALL_SESSIONS 1 #define WM_WTSSESSION_CHANGE 0x02B1 #define WTS_SESSION_LOCK 0x7 //ロック時 #define WTS_SESSION_UNLOCK 0x8 //アンロック時 //サンプル //ロック時に通知されるようにWindows に登録します。 if WTSRegisterSessionNotification(hwnd,NOTIFY_FOR_THIS_SESSION) == 0 : dialog "セッション通知の登録に失敗しました" : stop oncmd gosub *Notify,WM_WTSSESSION_CHANGE onexit *p_end stop *Notify switch wparam case WTS_SESSION_LOCK: mes "セッションがロックされました" swbreak case WTS_SESSION_UNLOCK: mes "セッションがアンロックされました。" swbreak swend return *p_end //使用を終了する場合は、下記で通知を破棄すること。 WTSUnRegisterSessionNotification hwnd end



トノ

リンク

2020/2/2(Sun) 19:23:49|NO.89404

返信ありがとうございます。

提示いただいた方法で希望の動作を得ることができました。

OS からメッセージを受け取る形になるんですね。
てっきり無限ループの中でウェイトを入れながら「ロック中かどうか」を
判別して、ロック中でなかったらループを抜けるようにスクリプトを組むものと
思っていたので、ちょっと意外でした。



?

リンク

2020/2/5(Wed) 07:11:04|NO.89419

これって一体何に使うの?
アダルトサイトの業者じゃないよね?



ONION software Copyright 1997-2023(c) All rights reserved.