<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      顯示密碼編輯框中的密碼

      [摘要]我們在使用Windows時,經常會碰到一些密碼編輯框,輸入其中的文字都以“*”顯示,F在,有許多共享軟件和自由軟件都可以實現隱藏密碼的正確顯示。究竟這是怎樣實現的呢!其實,這比較簡單,雖然這些信息都...
      我們在使用Windows時,經常會碰到一些密碼編輯框,輸入其中的文字都以“*”顯示,F在,有許多共享軟件和自由軟件都可以實現隱藏密碼的正確顯示。究竟這是怎樣實現的呢!其實,這比較簡單,雖然這些信息都以“*”顯示,但其內部還是以當初的字符表示,所以,我們只要用Windows API函數就可以實現。

        在Windows中,每一個窗口、控件都有它的名字(叫做Name或Window Text)。對于Form、Dialog Box、Message Box來說,名字就顯示在Title Bar中;對于Edit、Button、Static Control,名字顯示在他所占的區域中。密碼編輯框本身就是個Edit控件,雖然顯示的是特殊字符,但名字屬性沒有變,還是輸入時的字符。Windows提供了兩個API函數來獲得這個名字:

        int GetWindowTextLength(HWND hWnd); // 得到名字的長度

        其中,hWnd :想要得到的那個窗口或控件的句柄 handle

        int GetWindowText(HWND hWnd, LPTSTR lpString, int nMaxCount );// 得到名字

        其中,hWnd :想要得到的那個窗口或控件的句柄 handle;

        lpString:存放名字的字符串的地址

        nMaxCount :可拷貝的最大字符數

        下面以Delphi為例,說明它的實現過程。

        新建一Form,放置Label、Edit、Button各一個到Form中,將Edit1的PasswordChar屬性改為“*”,雙擊Button1:


        procedure TForm1.Button1Click(Sender: TObject);

        var

        Name:PChar; // 名字

        L:integer; // 名字的長度

        begin

        L:=GetWindowTextLength(Edit1.handle)+1; // 得到名字長度,并將長度加1

        GetMem(Name,L);//為將要得到的名字分配內存

        GetWindowText(Edit1.handle,Name,L);//得到名字

        label1.Caption:=String(Name); // 將得到的名字顯示于 Label1

        FreeMem(Name,0); // 釋放分配的內存

        end;

        經過運行,在Edit1中輸入的密碼就可通過Label1顯示出來。


      日韩精品一区二区三区高清