取得windows系统的屏幕保护程序的口令?(50分)

  • 主题发起人 主题发起人 liuge
  • 开始时间 开始时间
L

liuge

Unregistered / Unconfirmed
GUEST, unregistred user!
有一个API函数可以判断一个字符串是否是windows系统的屏幕
保护程序的口令,记不起来了。那位能告诉我?
如果能够有什么方法直接取得windows系统的屏幕保护程序的
口令就更好了。
 
到计算机世界(实用技巧 )上去找你所需的答案
我就不贴了!
 
到计算机世界(实用技巧 )上去找你所需的答案
我就不贴了!
http://www.ccw.com.cn/99/tips/9908/081703_09.asp
 
取得屏幕保护的现成工具是否需要?
 
好像看到说是用xor加密,具体方法不是很清楚
 
你想干什么?
 
除了干坏事,没有什么实用价值。
 
To yanghaijun:
我想自己编一个屏幕保护,又想使用windows系统的屏保口令。
To delphiwolf:
微软的几个幕保程序都使用了相同的口令设置。你想歪了!
另外,我记得曾见过一个API函数,它仅仅用以判断一个字符串
是否是windows系统的屏幕保护程序的口令。
 
我好象在哪也见过那个API,现在忘了。
 
确实有这个函数。
我做过一个标准的screen saver, 你说的功能都有。 晚上回家我找找看。
 
嘿嘿,不好意思,晚上回家后就忙着写自己的程序,把这事给忘了,今天起床跑到
大富翁逛逛,才想起来. 函数见下:
procedure TfrmScreenSaver.CloseIfOk;
var hLib:THandle;
P:function(Parent:THandle):Boolean;
stdcall;
SysDir:String;
NewLength:Integer;
Registry:TRegistry;
OSVer:TOSVersionInfo;
begin

OSVer.dwOSVersionInfoSize:=SizeOf(OSVer);
GetVersionEx(OSVer);
if OSVer.dwPlatformID=VER_PLATFORM_WIN32_WINDOWS then
//如果是win98/95
begin
Registry:=TRegistry.Create;
Registry.RootKey:=HKEY_CURRENT_USER;
if Registry.OpenKey('Control Panel/desktop',false) then
begin
if Registry.ReadInteger('ScreenSaveUsePassword')<>0 then
begin
ShowCursor(True);
//激活鼠标
//从系统目录动态调入库PASSWORD.CPL
SetLength(SysDir,MAX_PATH);
NewLength:=GetSystemDirectory(PChar(SysDir),MAX_PATH);
SetLength(SysDir,NewLength);
if (length(SysDir)>0) and (SysDir[length(SysDir)]<>'/') then
SysDir:=SysDir+'/';
hLib:=LoadLibrary(PChar(SysDir+'PASSWORD.CPL'));
if hLib=0 then
Close //如果DLL没找到,直接关闭程序
else
begin
//显示口令校验对话框
P:=GetProcAddress(hLib,'VerifyScreenSavePwd');
if P(Handle) then
//校验成功则关闭
Close;
FreeLibrary(hLib);
//释放PASSWORD.CPL
end;
ShowCursor(False);
//隐藏鼠标
end
else
Close;
end
else
Close;
end
else
if OSVer.dwPlatformID=VER_PLATFORM_WIN32_NT then
//如果是Windows NT
begin

//口令被NT控制, 直接关闭程序即可
Close;
end
else

//既不是NT也不是Win9x,直接关闭程序
Close;
end;
 
多人接受答案了。
 
后退
顶部