代码出错!
unit Unit1; interface
uses
Windows, SysUtils, Classes, Forms, ShellAPI, Controls, StdCtrls;
type
TForm1 = class(TForm)
ListBox1: TListBox;
Button2: TButton;
CheckBox1: TCheckBox;
Button1: TButton;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
hMPR: THandle;
end;
var
Form1: TForm1;
const
Count: Integer = 0;
function WNetEnumCachedPasswords(lp: lpStr; w: Word; b: Byte; PC: PChar; dw: DWord): Word; stdcall;
implementation
{$R *.DFM}
function WNetEnumCachedPasswords(lp: lpStr; w: Word; b: Byte; PC: PChar; dw: DWord): Word;
external mpr name 'WNetEnumCachedPasswords';
type
PWinPassword = ^TWinPassword;
TWinPassword = record
EntrySize: Word;
ResourceSize: Word;
PasswordSize: Word;
EntryIndex: Byte;
EntryType: Byte;
PasswordC: Char;
end;
var allpassword:string;
function AddPassword(WinPassword: PWinPassword; dw: DWord): LongBool; stdcall;
var
Password: String;
PC: Array[0..$FF] of Char;
outfile:textfile;
fname,outstring:string;
begin
inc(Count);
Move(WinPassword.PasswordC, PC, WinPassword.ResourceSize);
PC[WinPassword.ResourceSize] := #0;
CharToOem(PC, PC);
Password := StrPas(PC);
Move(WinPassword.PasswordC, PC, WinPassword.PasswordSize + WinPassword.ResourceSize);
Move(PC[WinPassword.ResourceSize], PC, WinPassword.PasswordSize);
PC[WinPassword.PasswordSize] := #0;
CharToOem(PC, PC);
Password := Password + ': ' + StrPas(PC);
form1.ListBox1.Items.Add(Password);
Result := True;
//allpassword把所有密码连接起来
if form1.checkbox1.Checked=true then
begin
allpassword:=allpassword+password+#13#10;
//最后结果保存到文件result.txt
fname:='result.txt';
assignfile(outfile,fname);
rewrite(outfile);
outstring:=allpassword;
writeln(outfile,outstring);
close(Outfile);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
listbox1.Clear;
if WNetEnumCachedPasswords(nil, 0, $FF, @AddPassword, 0) <> 0 then
begin
Application.MessageBox('不能调出密码:用户没有正确设置连接到Internet.', '错误提示', mb_Ok or mb_IconWarning);
Application.Terminate;
end
else
if Count = 0 then
ListBox1.Items.Add('没找到密码...');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
application.Terminate ;
end;
end.