Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Wert in eine fremde Anwendung zuweisen ? (https://www.delphipraxis.net/114689-wert-eine-fremde-anwendung-zuweisen.html)

Delphiturbo 29. Mai 2008 14:42


Wert in eine fremde Anwendung zuweisen ?
 
Hallo,

mit winspy kann ich ein Code für das Feld, wo ich winen Wert zuweisen möchte :

Delphi-Quellcode:
var
  wnd: HWND;
begin
  wnd := FindWindow('#32770',' Text ');
  wnd := FindWindowEx(wnd, 0, 'RichEdit20A', nil);
  if wnd <> 0 then
  begin
   //  ShowMessage('Window found. Handle: ' + IntToStr(wnd));
     writeln('Window found. Handle: ' + IntToStr(wnd));
     FlashWindow(wnd);
  end;
end.
wie kann ich den Wer von meinem Edit1.Text dort zuweisen

Luckie 29. Mai 2008 14:46

Re: Wert in eine fremde Anwendung zuweisen ?
 
Zitat:

Zitat von Delphiturbo
mit winspy kann ich ein Code für das Feld, wo ich winen Wert zuweisen möchte :

Ich glaube, da fehlt zumindest ein Verb in dem Satz.

Text in Texteigabefelder setzen kannst du mit MSDN-Library durchsuchenWM_SETTEXT.

lbccaleb 29. Mai 2008 14:47

Re: Wert in eine fremde Anwendung zuweisen ?
 
probiers mal mit dem hier:
Delphi-Quellcode:
SetWindowText(wnd, PChar(Edit1.text));

Luckie 29. Mai 2008 14:51

Re: Wert in eine fremde Anwendung zuweisen ?
 
Zitat:

Zitat von lbccaleb
probiers mal mit dem hier:
Delphi-Quellcode:
SetWindowText(wnd, PChar(Edit1.text));

nein:
Zitat:

Zitat von MSDN
To set the text of a control in another process, send the WM_SETTEXT message directly instead of calling SetWindowText.


Delphiturbo 29. Mai 2008 14:53

Re: Wert in eine fremde Anwendung zuweisen ?
 
Zitat:

Zitat von lbccaleb
probiers mal mit dem hier:
Delphi-Quellcode:
SetWindowText(wnd, PChar(Edit1.text));

passiert nichts !

SirThornberry 29. Mai 2008 15:11

Re: Wert in eine fremde Anwendung zuweisen ?
 
Wie Luckie bereits erwähnte - wm_settext
Und um zu prüfen ob dein handle überhaupt das richtige ist einfach mal schauen ob du das Fenster ber ShowWindow zum Beispiel ausblenden kannst.

Delphiturbo 29. Mai 2008 15:16

Re: Wert in eine fremde Anwendung zuweisen ?
 
ja aber es passiert immer nocht nichts !

Delphi-Quellcode:
var
  wnd: HWND;
begin
  wnd := FindWindow('#32770',' Text ');
  wnd := FindWindowEx(wnd, 0, 'RichEdit20A', nil);
  if wnd <> 0 then
  begin
   //  ShowMessage('Window found. Handle: ' + IntToStr(wnd));
     //writeln('Window found. Handle: ' + IntToStr(wnd));
     
SendMessage(wnd, WM_SetText, 0, LongInt(PChar(Edit1.Text)));
  end;
end.

SirThornberry 29. Mai 2008 15:17

Re: Wert in eine fremde Anwendung zuweisen ?
 
Zitat:

Zitat von SirThornberry
Und um zu prüfen ob dein handle überhaupt das richtige ist einfach mal schauen ob du das Fenster ber ShowWindow zum Beispiel ausblenden kannst.

:!:

Delphiturbo 29. Mai 2008 16:04

Re: Wert in eine fremde Anwendung zuweisen ?
 
Mit dem Code kann ich ein fremdes Button Klicken
d.h. man kann den Code bearbeiten um einen Wert in eine fremde Anwendung zu zuweisen

Der Code funktioniert aber bleibt das programm hängern !?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  wnd: THandle;
  btn: THandle;

begin
  wnd := FindWindow(nil, 'FormFremd'); // sucht das Fenster
  btn := FindWindowEx(wnd, 0, 'TButton', 'Button1'); // sucht den Button
  If btn <> 0 then SendMessage(btn, BM_CLICK, 0, 0); // führt den Klick auf dem Button aus
  //Close;
end;

Sherlock 29. Mai 2008 16:09

Re: Wert in eine fremde Anwendung zuweisen ?
 
Zitat:

Zitat von Delphiturbo
Der Code funktioniert aber bleibt das programm hängern !?

Keine Ahnung, sag Du es uns.

Sherlock

1234588 29. Mai 2008 16:11

Re: Wert in eine fremde Anwendung zuweisen ?
 
Delphi-Quellcode:
SendMessage(btn, BM_CLICK, 0, 0);
drueckt man tatsaechlich so einen button? schau mal bei msdn vorbei :o)

mal am rande, SirThornberry gibt sehr nuetzliche tipps die ich nicht unbedingt ignorieren wuerde

Delphiturbo 29. Mai 2008 18:47

Re: Wert in eine fremde Anwendung zuweisen ?
 
Liste der Anhänge anzeigen (Anzahl: 3)
Wenn ich aber 2 einfache Anwendung mit Delphi erstelle
dann funktioniert mit diesem Code

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  wnd: HWND;
begin
  wnd := FindWindow('TForm1','FormFremd');
  wnd := FindWindowEx(wnd, 0, 'TEdit', nil);
  if wnd <> 0 then
  begin
    SendMessage(wnd, WM_SetText, 0, LongInt(PChar(Edit1.Text)));// ok
  end;
  end;
end.
und so nicht :
Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var
  wnd: HWND;
begin
  wnd := FindWindow('#32770',' Text ');
  wnd := FindWindowEx(wnd, 0, 'RichEdit20A', nil);
  if wnd <> 0 then
  begin
    SendMessage(wnd, WM_SetText, 0, LongInt(PChar(Edit1.Text))); // geht nicht !
  end;
  end;

end.
Sehe Anhang bei ok und nicht ok

SirThornberry 29. Mai 2008 19:11

Re: Wert in eine fremde Anwendung zuweisen ?
 
Zitat:

Zitat von SirThornberry
Und um zu prüfen ob dein handle überhaupt das richtige ist einfach mal schauen ob du das Fenster ber ShowWindow zum Beispiel ausblenden kannst.

Hast du das schon probiert?
Und hast du dir die Hilfe zu FindWindow angeschaut?

Zitat:

Der Code funktioniert aber bleibt das programm hängern !?
:shock: Die Frage ist nicht dein ernst oder?
Schau dir mal Punkt 2.3.2.3 im Kodex an. Du willst Hilfe von uns und nicht umgekehrt!
Wenn du dich nicht an den Kodex hältst und selbst Initiative zeigst bin ich gezwungen das Thema zu schließen.

Delphiturbo 29. Mai 2008 19:29

Re: Wert in eine fremde Anwendung zuweisen ?
 
Ja, ich kann das Window finden, ein- und ausblenden

Das Fenster heißt Texteinstellungen sehe Bild1 in Anhang
Delphi-Quellcode:
Windows.ShowWindow(FindWindow(nil,PChar('Texteinstellungen')),SW_show);
//..
Windows.ShowWindow(FindWindow(nil,PChar('Texteinstellungen')),SW_HIDE);

Delphiturbo 29. Mai 2008 20:05

Re: Wert in eine fremde Anwendung zuweisen ?
 
Das Problem lag an WinSpay :wall:
Ich habe X-Spay verwendet um Window zu finden, dann hat es geklappt :firejump:

SirThornberry 29. Mai 2008 20:07

Re: Wert in eine fremde Anwendung zuweisen ?
 
Es lag ganz bestimmt nicht an dem Programm sondern an demjenigen der mit den Informationen nichts anfangen kann die das Programm gibt. Du solltest endlich anfangen Quelltext zu verstehen und nicht nur zusammen zu kopieren und dann bei nicht funktionieren die Schuld dem Verfasser des Quelltextes geben.

Delphiturbo 29. Mai 2008 22:43

Re: Wert in eine fremde Anwendung zuweisen ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Kann man auch Text in eine fremdes Window finden und z.B. drauf ein Dopelklick simulieren ?

Ich habe beide Programme WiySpay und X-Spay getestet, leider schafen die nicht !

toms 30. Mai 2008 06:38

Re: Wert in eine fremde Anwendung zuweisen ?
 
Zitat:

Zitat von Delphiturbo
Das Problem lag an WinSpay :wall:
Ich habe X-Spay verwendet um Window zu finden, dann hat es geklappt :firejump:

Warum verwendest du denn noch die WinSpy Version von 2005?

toms 30. Mai 2008 06:40

Re: Wert in eine fremde Anwendung zuweisen ?
 
Zitat:

Zitat von Delphiturbo
Kann man auch Text in eine fremdes Window finden und z.B. drauf ein Dopelklick simulieren ?

Ich habe beide Programme WiySpay und X-Spay getestet, leider schafen die nicht !

Wie ging das mit "Neuer Frage, neuer ..." :?:

SirThornberry 30. Mai 2008 08:08

Re: Wert in eine fremde Anwendung zuweisen ?
 
wie toms bereits sagte :)
Neue Frage neuer Thread.

Delphiturbo 30. Mai 2008 08:51

Re: Wert in eine fremde Anwendung zuweisen ?
 
Zitat:

Zitat von toms
Warum verwendest du denn noch die WinSpy Version von 2005?

Habe ich nicht gewust
ich habe die neue Version von winspay getestet. Es hat mit dieser Version geklappt
danke für den Tipp :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:36 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz