Autor Beitrag
Jonathan R.
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mo 13.08.07 16:31 
Hallo liebes Delphi Forum, erstmal möchte ich mich entschuldigen, dass ich gleich bei meinem ersten Beitrag eine Frage habe und dann noch höchstwahrscheinlich in die falsche Kategorie.

Nunja, nun zu meinem Problem, ich möchte bestimmte Labelinhalte an ein Programm senden, dies soll später dazu dienen dass ich mein Passwort und Benutzername eingebe, und das mein Programm ihn an das andere Programm (hier ein Spiel) sendet.

Ich habe es bereits so probiert, wie ich einzelne "Knöpfe" an das Programm senden kann, nämlich so:
ausblenden Delphi-Quelltext
1:
2:
3:
SendMessage(hwndFenster, WM_KEYDOWN, Vk_F4, 0);
SendMessage(hwndFenster, WM_CHAR, Vk_F4, 0);
SendMessage(hwndFenster, WM_KEYUP, Vk_F4, 0);


Gut, dann habe ich es probiert "einfach umzuschreiben", was leider nicht ganz funktioniert da ich nicht weiß wie ich richtig "umwandeln" soll.

Hier mein momentaner Quelltext:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.Button1Click(Sender: TObject);
var hwndFenster : THandle;
begin
  hwndFenster := FindWindow('Fenstertitel',nil);
  SendMessage(hwndFenster, WM_KEYDOWN, VkKeyScan(StrToInt(Edit1.Text)), 0);
  SendMessage(hwndFenster, WM_CHAR, VkKeyScan(StrToInt(Edit1.Text)), 0);
  SendMessage(hwndFenster, WM_KEYUP, VkKeyScan(StrToInt(Edit1.Text)), 0);
end;


Die Fehlermeldung die aufkommt sagt mit nur, dass die Typen "Char und Integer" inkompatibel sind, nur kann ich sonst nicht Edit1.Text nehmen wenn ich es nicht auf diese Art umwandel.

Ich hoffe irgendjemand kann mir helfen dies richtig umzuwandeln oder mir sogar eine einfachere Lösung geben, zur Not nehme ich auch gerne ein schon fertiges Programm was dann aber den Spaß und Reiz nimmt :P.

Vielen lieben dank im Vorraus schon einmal.

Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt
Moderiert von user profile iconGausi: Topic aus Sonstiges (Delphi) verschoben am Mo 13.08.2007 um 16:51
little-wolf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 47

WinXP
Delphi 5 Enterprise, Delphi 2006 Enterprise
BeitragVerfasst: Mo 13.08.07 16:48 
hallo jonathan r.

greiff doch mit ner for-schlaufe auf die einzelnen werte vom edit text zu -> editfeld.text[schalufenzaehler]. da du ja warscheinlich sowieso jede taste einzeln "drücken" musst...

um das in deinem programmbeispiel anzuwenden:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm1.Button1Click(Sender: TObject);
var
  c: Char;
  i: Integer;
  hwndFenster : THandle;
begin
  hwndFenster := FindWindow('Fenstertitel',nil);
  for i := 0 to length(Edit1.Text)-1 do begin
    c := Edit1.Text[i];
    SendMessage(hwndFenster, WM_KEYDOWN, VkKeyScan(c), 0);
    SendMessage(hwndFenster, WM_CHAR, VkKeyScan(c), 0);
    SendMessage(hwndFenster, WM_KEYUP, VkKeyScan(c), 0);
  end;
end;


natürlich kann man anstelle die variable "c" zu nutzen auch gleich "edit1.text[i]" im "sendmessage" nutzen. "c" solllte nur verdeutlichen, dass "Edit1.Text[i]" ein "char" ist...


gruss

little-wolf


Zuletzt bearbeitet von little-wolf am Mo 13.08.07 16:59, insgesamt 2-mal bearbeitet
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mo 13.08.07 16:50 
Mach dich mal über WM_SETTEXT schlau. Forensuche sollte auch was dazu liefern.

_________________
We are, we were and will not be.
Jonathan R. Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mo 13.08.07 17:05 
Vielen dank erst einmal little-wolf funktioniert super!

Auch dir danke Gausi, ich werde es mir mal ansehen!