51Testing软件测试论坛

标题: WR读到的PassWord框里的星号显示密码是加密的 [打印本页]

作者: mars    时间: 2004-9-9 14:57
标题: WR读到的PassWord框里的星号显示密码是加密的
WR读到的PassWord框里的星号显示密码是加密的,我想用数据向导把Password里的数据递加1,该怎样做。
作者: pcl2004_27    时间: 2004-9-9 17:09
你的操作是如何做呢!
验证点?
我觉得如果要是录制的脚本,只是把密码数据加1后,输入到密码框里就可以了
作者: flower    时间: 2004-9-13 14:49
password显示为加密串有时是因为不能正确识别此控件,比如java,我就遇到过此情况,加了java add-in后显示的就是实际输入文本.
作者: pcl2004_27    时间: 2004-9-14 09:08
一般windows控件经过加密处理,在控件的消息中加入了对WM_GETTEXT进行处理,所以一般想得到密码框的文本都是加密的字符串!java可能处理方式不同
这里是个delphi对密码框处理WM_GETTEXT 消息的代码,你可以从中看到其中的奥秘!

下边是得到password密码框密码的源代码!你可以通过这段delphi代码得到你要的得到的password框的代码
// 显示鼠标当前所在的文本框内容
function ShowWindowText():string;
var
    pPoint:TPoint;
    WinText:string;
    mTextChar;
    hWnd:Integer;
begin
    GetCursorPos(pPoint);
    SetLength(WinText,256);
    hWnd:=WindowFromPoint(pPoint);
    GetWindowText(hWND,PChar(WinText),256);
    SetLength(WinText,StrLen(PChar(WinText)));
    result:=WinText;
end;

而windows有的密码框控件对这个消息进行了处理,下边是一个控件的代码:
unit uCEdit;

interface

uses Windows,StdCtrls,Messages,Classes;

TYPE
    TCEdit=class(TEdit)
    private
        bEnable:boolean;            // 允许使用
        procedure WndProc(var Msg: TMessage);override;
    public
        constructor Create(AOwner: TComponent); override;

        function MyGetText():string;
    published

    end;

procedure Register;

implementation

{ CEdit }

//注册控件
procedure Register;
begin
    RegisterComponents('Additional', [TCEdit]);
end;

constructor TCEdit.Create(AOwner: TComponent);
begin
    inherited Create(AOwner);
    // 禁止使用
    bEnable:=false;
end;

function TCEdit.MyGetText: string;
begin
    // 程序本身还是用允许的
    bEnable:=true;
   
    result:=Text;
end;

procedure TCEdit.WndProc(var Msg: TMessage);
begin
    if (Msg.Msg=WM_GETTEXT) or (Msg.Msg=EM_GETLINE)  then
    begin
        if bEnable then
        begin
            bEnable:=false;
            inherited;
        end;
    end
    else inherited;
end;

end.

所以你遇到这样的控件你是很难得到他的password的!其实winrunner获得属性,得到密码的情况类似!

对于java的情况我没有做实验,所以无法得出具体的情况!不过从自动化实现上来说我觉得得到一个密码框的密码,我觉得这需要考虑!
作者: mars    时间: 2004-9-14 10:20
谢谢大家的帮助!
作者: mars    时间: 2004-9-14 10:27
谢谢大家的帮助!
作者: girl04    时间: 2004-10-30 21:40
其实这个问题很简单.

用password_encrypt()就可以了
作者: girl04    时间: 2004-10-30 21:43
如:password_edit_set("QQ密码:", password_encrypt(ddt_val(table,"QQ密码")));

详见我的帖Q登陆脚本的录制
作者: www.super.zc    时间: 2005-11-11 15:38
标题: 丢得多
password_edit_set改称edit_set就什么问题都没了!麻烦得要命!
作者: feiyi_feiyi    时间: 2006-1-6 10:01
我也是像楼上这样做的,很简单,除非不想让别人知道这个软件的密码是什么,才需要那么麻烦吧
作者: zhangtao    时间: 2006-10-26 18:00
标题: 呵呵
password_edit_set改成edit_set还是我照edit_username改的,试一下还真的可以,不过好象有人研究出来了,呵呵~~~~~~~~~




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2