Autor Beitrag
jackie05
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 357



BeitragVerfasst: So 31.08.08 18:10 
Hallo,
ich möchte gerne ein Editfeld, das ein Password Char enthält, gerne ändern.
Leider functioniert das nicht, wenn ich es über meinem Programm ändern möchte, wird der Inhalt des Editfeldes gelöscht.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
// Passwort Charakter für ein Edit Feld setzen
procedure SetPasswordChar(AHandle: HWND; Value: Char);
var
  S: String;
  len: Integer;
begin
  len := Sendmessage(AHandle, WM_GETTEXTLENGTH, 00);
  SetLength(S, len);
  SendMessage(AHandle, WM_GETTEXT, len+1, lparam(@S[1]));
  SendMessage(AHandle, EM_SETPASSWORDCHAR, Ord(Value), 0);
  SendMessage(AHandle, WM_SETTEXT, 0, Integer(PChar(S)));
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  wndWindow,wndEdit: HWND;
begin
  wndWindow := FindWindow('IEFrame','TestSeite - Windows Internet Explorer');
  wndEdit := FindWindowEx(wndWindow, 0'Edit'nil);

  SetPasswordChar(wndEdit,'-');
end;


Gibt es vieleicht eine andere möglichkeit, ein Editfeld "das ein Password Char enthält" zu ändern?

Ich wäre euch für jede hilfe sehr dankbar.

MfG
Blawen
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 616
Erhaltene Danke: 33

Win XP, Vista, 7
Delphi 5 Prof., BDS 2006 Prof. RAD Studio XE
BeitragVerfasst: So 31.08.08 21:07 
Willst Du schlussendlich nur das verwendete Zeichen austauschen?
Wenn ja, schau Dir mal im Project Manager die Eigenschaft "PasswordChar" an.

_________________
Es kompilert, wir können ausliefern.
Und es kompiliert wieder - das Update ist fertig - bitte 100 Euro ;-)
jackie05 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 357



BeitragVerfasst: So 31.08.08 21:24 
Danke Dir.

Ich glaube Du hast mich falsch verstanden, ich möchte in einem externen anwendung das Editfeld was einen Password Char * enthält, auslesen und oder das Edidfeld den Password Char aufheben.

Wie könnte ich das ambesten realisieren?

MfG
Tilman
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: So 31.08.08 22:52 
Früher ging das teilweise über GetText oder GetWindowText, weiß nicht mehr so genau wie der Befehl heißt. Darüber konnte man Editfelder auslesen, auch wenn ein PW-Char gesetzt war. Aber soweit ich weiß wurde dass gefixt, ist ja auch aus gutem Grund nicht vorgesehen ;)

_________________
Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
jackie05 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 357



BeitragVerfasst: So 31.08.08 23:56 
Danke.

Ich habe ein Programm "WinID", mit dem man die Handles rausbekommt und da kann ja auch das Passwordfeld ausgegeben werden, also ist das ja auch möglich.

Naja, wenn jemand weiss, wie ich es lösen kann, dann wäre ich sehr dankbar dafür.

MfG