Last Updated 2005/09/14
Programming Tips Windows スクリーンセーバー  索 引 
独自のパスワード認証
2005/09/14

Windows95 系のスクリーンセーバのパスワード認証処理は,その画面表示の処理をスクリーンセーバ側で制御する必要があるらしい.

普通のパスワード認証ダイアログを表示させるには WM_CLOSE メッセージが来たときに以下のように処理する.


BOOL VerifyPassword(HWND hwnd)
{
    HINSTANCE hpwdcpl = ::LoadLibrary("PASSWORD.CPL");

    if(hpwdcpl == NULL) {
        return TRUE;
    }

    typedef BOOL (WINAPI *VERIFYSCREENSAVEPWD)(HWND hwnd);
    VERIFYSCREENSAVEPWD VerifyScreenSavePwd;
    VerifyScreenSavePwd = (VERIFYSCREENSAVEPWD)GetProcAddress(hpwdcpl, "VerifyScreenSavePwd");

    if(VerifyScreenSavePwd == NULL) {
        FreeLibrary(hpwdcpl);
        return TRUE;
    }

    BOOL bResule = VerifyScreenSavePwd(hwnd);   // 画面の表示
    FreeLibrary(hpwdcpl);

    return nResult;
}


つまりこの部分を書き換える事で,独自のユーザ認証処理(例えば音声認識とか)を行う
ことができる.

ただし,NT 系ではこの辺の処理を OS 側で抱え込んでるみたいなので実装は難しい.


参照
パスワードの一致
スクリーンセーバーの起動オプション
前後のTips
独自のパスワード認証

DSS ProgrammingTipsCGI Ver2.02