;================================================================================ ;モジュール scrsvr ;ver 1.0 ; スクリーンセーバー関連 ; llmod.asが必要です ;================================================================================ ; scrsvrモジュール命令一覧 ; ; ss_running スクリーンセーバーが作動しているかシステムに知らせる ; ss_chgpwd Windows標準のパスワード変更ダイアログ ; ss_chkpwd Windows標準のパスワードチェックダイアログ ; ; 計 3個 ;使い方 ;================================================================================ ; ss_running n1 スクリーンセーバーが作動しているかシステムに知らせる ; ; n1 : 作動しているか、いないかのフラグ ;================================================================================ ; ;<>説明 ; スクリーンセーバーが作動しているかシステム(Windows)に知らせます。 ; n1に1を代入すると、システム(Windows)にスクリーンセーバーが ; 作動中であることを知らせます。 ; n1に0を代入すると、スクリーンセーバーは作動してない、とシステムに知らせます。 ; ; ※ n1を1にしてこの命令を実行すると、ALT+CTRL+DEL,ALT+TAB,winボタンなどの ; キーが効かなくなります。 ; n1を1にしてこの命令を実行したら、必ずn1を0にしてもう一度この命令を実行して ; ください。 ; ; ;<>この命令を呼び出した後のstatの値 ; 0 エラー ; 上記以外 エラー無し ; ;================================================================================ ; ss_chgpwd Windows標準のパスワード変更ダイアログ ;================================================================================ ; ;<>説明 ; Windows標準のパスワード変更ダイアログを呼び出します。 ; ;<>この命令を呼び出した後のstatの値 ; 0 パスワードが変更された ; 上記以外 キャンセルされた ; ;================================================================================ ; ss_chkpwd Windows標準のパスワードチェックダイアログ ;================================================================================ ; ;<>説明 ; Windows標準のパスワードチェックダイアログを呼び出します。 ; ただし、コントロールパネルの'画面のプロパティ'で'パスワードによる保護'が ; チェックされている場合のみです。 ; ;<>この命令を呼び出した後のstatの値 ; 0 キャンセルされた ; 上記以外 正確なパスワードが入力された ; ('パスワードによる保護'がチェックされていない場合も含む) ; ;module始め>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> #module "scrsvr" ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ;ss_running ;スクリーンセーバーが作動しているかシステムに知らせる ;................................................................................ #deffunc ss_running mref prm mref stt,64 ;#define SPI_SCREENSAVERRUNNING 97 prm.1=prm prm.0=97 getptr prm.2,s prm.3=0 dllproc "SystemParametersInfoA",prm,4,D_USER ;succeed nonzero,falied 0 return ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ;ss_chgpwd ;Windows標準のパスワード変更ダイアログ ;................................................................................ #deffunc ss_chgpwd mref stt,64 _get_active_window prm.1 ll_libload@ dll,"mpr" s="SCRSAVE" getptr prm.0,s prm.2=0,0 dllproc "PwdChangePasswordA",prm,4,dll ;if stat!0 : dll_free dll : stt=-1 : return prm=stat ll_libfree@ dll stt=prm ;return 0 if password is changed, otherwise return nonzero return ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ;ss_chkpwd ;Windows標準のパスワードチェックダイアログ ;................................................................................ #deffunc ss_chkpwd mref stt,64 _get_active_window prm ll_libload@ dll,"password.cpl" if dll=0 : stt=1 : return ;dllのロードが失敗したら、パスワードはあっている ;ものとみなす(終わらなくなるのを防ぐため) dllproc "VerifyScreenSavePwd",prm,1,dll prm=stat ll_libfree@ dll stt=prm ;パスワードがあってなければ0を返す return ;module終わり>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> #global