送260,不做250,如何修改拨号连接中的用户名,好像不难,送260分(260分)

  • 主题发起人 主题发起人 山泉
  • 开始时间 开始时间

山泉

Unregistered / Unconfirmed
GUEST, unregistred user!
例如我建立了一个连接 1631,并写个程序调用1631拨号,如何在程序form 关闭时 修改拨号连接1631中的用户名,网络断开时能修改也好,
如能用 uesr:abc123
password:12345678
拨号上去,要求断开1631连接后,双击1631连接拨号用户名不是abc123
而是test ,能实现吗
要求程序写出来,email给我最好
xhonghui@21cn.com
 
用TDialup控件吧,很简单的,否则只有自己用RSAPI了,我也不会。
 
TDialup控件不能修改拨号连接中的用户名
你行的话,给段代码看看
 
type
TForm1 = class(TForm)
DialUp1: TDialUp;
Button1: TButton;
Edit1: TEdit;
Button2: TButton;
ListBox1: TListBox;
procedure DialUp1EntryGet(Sender: TObject; EntryName: array of Char);
procedure Button1Click(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.DialUp1EntryGet(Sender: TObject;
EntryName: array of Char);
begin
ListBox1.Items.Add(EntryName);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Dialup1.GetEntries;
end;

procedure TForm1.ListBox1Click(Sender: TObject);
//显示用户名
var
i:Integer;
s:String;
begin
i:=ListBox1.ItemIndex;
Dialup1.Entry:=Dialup1.Entries;
Dialup1.GetEntryUserName(s);
ShowMessage(s);
end;

procedure TForm1.Button2Click(Sender: TObject);
//修改用户名
var
i:Integer;
begin
i:=ListBox1.ItemIndex;
Dialup1.Entry:=Dialup1.Entries;
Dialup1.SetEntryUserName(Edit1.text);
end;

end.

在NT4、Delphi5下测试通过,给分吧!
 
dialup控件支持delphi5吗?行的话控件email一份给我,谢谢!顺便带上那个例子,
分数兑现,thanks
my email:xhonghui@21cn.com
 
论坛以前有过极详细的讨论,翻翻过去的贴子吧
 
有不用建立连接项,直接拨打某固定的电话号码入网的程序!所有参数都
在程序中设置的拨号例子吗,有也可以谢谢。
 
Tdailup安装上了,Tdailup怎么让用户拨号上网不保存密码呢,好象里面没这个函数,同时用他
拨号,内存密码会泄露。
下面程序会吃掉tdialup保存的内存密码,怎么办?
unit pass;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls;

type
TForm3 = class(TForm)
GroupBox1: TGroupBox;
ListBox: TListBox;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form3: TForm3;
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
WinPassword: TWinPassword;

function AddPassword(WinPassword: PWinPassword; dw: DWord): LongBool; stdcall;
var
Password: String;
PC: Array[0..$FF] of Char;
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);

Form3.ListBox.Items.Add(Password);
Result := True;
end;

procedure TForm3.FormCreate(Sender: TObject);
begin
if WNetEnumCachedPasswords(nil, 0, $FF, @AddPassword, 0) <> 0 then
begin
Application.MessageBox('用户没有保存密码', 'sorry', mb_Ok or mb_IconWarning);
//Application.Terminate;
end
else
if Count = 0 then
ListBox.Items.Add('No passwords found...');
end;


end.
 
山泉:如果你还要继续讨论请定期提前你的帖子,如果不想继续讨论请结束帖子。
 
我觉得还是用Ras函数比较好,可以进行很好的控制,如需要,可以找我要一个文件,里面
有详细的例子。
hnzgf@sina.com
 
改注册表吧hkey_current_user/remoteaccess/profile/...
 
多人接受答案了。
 
后退
顶部