⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.pas

📁 delphi得到缓冲区的密码的例子
💻 PAS
字号:
unit test; 

interface 

uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  StdCtrls ,  shellApi;

type 
PPASSWORD_CACHE_ENTRY=^TPASSWORD_CACHE_ENTRY; 
TPASSWORD_CACHE_ENTRY=packed record 
cbEntry: word; //password entry的字节长度 
cbResource: word; //resource name的字节长度 
cbPassword: word; //password的字节长度 
iEntry: byte; //entry index 
nType: byte; //type of entry 
abResource : array[0..200] of char; //start of resource name //password immediately follows re source name 
end; 

type 
TForm1 = class(TForm) 
Memo1: TMemo; 
Button1: TButton; 
Button2: TButton; 
Button3: TButton; 
Button4: TButton; 
procedure FormCreate(Sender: TObject); 
procedure Button2Click(Sender: TObject); 
procedure Button3Click(Sender: TObject); 
procedure Button4Click(Sender: TObject); 

private 

{ Private declarations } 

public { Public declarations } 

end; 

var Form1: TForm1; Passwordcount:integer; buffer1: array[0..200] of char; 

implementation 

{$R *.DFM} 

function WNetEnumCachedPasswords(para0: pointer; para1:word; para2: byte; para3:pointer; para4: dword): word; stdcall; external 'mpr.dll' name 'WNetEnumCachedPasswords';

function pce(x:PPASSWORD_CACHE_ENTRY;y:dword):boolean;stdcall; 
begin 
passwordcount:=passwordcount+1; 
move(x.abResource,buffer1,x.cbResource); 
if x.cbResource<50 then 
fillchar(buffer1[x.cbResource],50-x.cbResource,#32); move(x.abResource[x.cbResource],buffer1[50],x.cbPassword); 
buffer1[x.cbPassword+50]:=#0; 
Form1.Memo1.Lines.Add(buffer1);
Result:=true; 
end; 

procedure TForm1.FormCreate(Sender: TObject); 
begin 
passwordcount:=0; 
Memo1.Lines.Clear; 
Memo1.Font.Color:=clBlack; 
WNetEnumCachedPasswords(nil,0,255,@pce,0); 
Memo1.Lines.Add('--------------------------------------------------- ---------');
Memo1.Lines.Add(format('当前用户共有%d个密码资源缓存',[passwordcount ])); 
end; 

procedure TForm1.Button2Click(Sender: TObject); 
begin 
Memo1.Lines.clear; 
Memo1.Font.Color:=clblue; Memo1.Lines.Add(' 我们通常允许Windows替我们把各类密码(如上网帐号 ,密码等)存入系统,这当然方便了我们的使用。但是,您必须知道,那些“保 密”的信息其实一点也不保密。');
Memo1.Lines.Add(' 这里只使用了一个标准的Windows Api程序,就能知道 您保存在机器里的大部分密码。'); 
Memo1.Lines.Add(' 本程序属免费性质,允许您将其任意拷贝,传播,您也 可直接使用或修改其中代码。尽管已经对程序进行了测试,但我不保证您在自己 的机器上运行时不发生故障。特申明:作者不对由于运行本程序而导致的任何后 果负责!'); 
Memo1.Lines.Add(' 不管您从何种渠道取得本程序,我都要求您合法地使用 本程序,如您不能做到,请立刻删除本程序,谢谢您的合作'); 
Memo1.Lines.Add(''); 
Memo1.Lines.Add(' ------ 版权所有,翻版不究;合法使用,慎防违法! ------'); 
end; 

 

procedure TForm1.Button3Click(Sender: TObject); 
begin 
ShellExecute( Handle, 'Open', 'mailto:LIGUOZHIXT@NETEASE.COM','','',SW_SHOW); 
end;

procedure TForm1.Button4Click(Sender: TObject); 
begin 
close; 
end; 

end. 



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -