|
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"[D4] パスワード設定とパスワード入力"
Windows標準スクリーンセーバーで使われている
スクリーンセーバーのパスワード設定とパスワード入力
FormにButton1とButton2を配置して下さい。
Button1でパスワード設定
Button2でパスワード入力
です
KHE00221 t.matsui
======================================
以下サンプルプログラム
======================================
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
Form1: TForm1;
p : TFarProc;
hPASSWORD : Integer;
hMPR : Integer;
PwdChangePasswordA :
procedure(lpcregkeyname:LPCSTR;hwnd:HWND;uiReserved1:UINT;uiReserved2:UINT);
stdcall;
VerifyScreenSavePwd : function (hwnd:HWND):Boolean;stdcall;
implementation
{$R *.DFM}
{初期設定}
procedure TForm1.FormCreate(Sender: TObject);
begin
//MPR.DLL のロード
hMPR := LoadLibrary('MPR.DLL');
p := GetProcAddress(hMPR,'PwdChangePasswordA');
if p <> Nil then @PwdChangePasswordA := p;
//PASSWORD.CPL のロード
hPASSWORD := LoadLibrary('PASSWORD.CPL');
p := GetProcAddress(hPASSWORD, 'VerifyScreenSavePwd');
if p <> Nil then @VerifyScreenSavePwd := p;
Exit;
end;
{終了処理}
procedure TForm1.FormDestroy(Sender: TObject);
begin
//開放
if hPASSWORD <> 0 then FreeLibrary (hPASSWORD);
if hMPR <> 0 then FreeLibrary (hMPR);
Exit;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
//パスワード設定フォーム
PwdChangePasswordA('SCRSAVE',Application.Handle,0,0);
Exit;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
B : Boolean;
S : String;
begin
//パスワード入力フォーム
B := VerifyScreenSavePwd(Application.Handle);
if B=True then S:='正しいパスワードが入力されました' else
if B=False then S:='キャンセルされました';
MessageDlg(S, mtInformation,[mbOk], 0);
Exit;
end;
end.
Original document by t.matsui 氏 ID:(KHE00221)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|