AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Externe Editbox mit Programm befüllen
Thema durchsuchen
Ansicht
Themen-Optionen

Externe Editbox mit Programm befüllen

Ein Thema von WizoHulk · begonnen am 25. Jun 2010 · letzter Beitrag vom 28. Jun 2010
Antwort Antwort
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#1

AW: Externe Editbox mit Programm befüllen

  Alt 25. Jun 2010, 11:08
Die Zahl kommt mir bekannt vor, das ist ein Windows-Dialog, richtig? Aber zum Problem:
Zitat von MSDN:
However, SetWindowText cannot change the text of a control in another application.
Versuch es doch einmal mit WM_SETTEXT.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
WizoHulk

Registriert seit: 25. Jun 2010
198 Beiträge
 
Delphi 5 Enterprise
 
#2

AW: Externe Editbox mit Programm befüllen

  Alt 25. Jun 2010, 22:02
Meinst du statt:TForm1.SetEditText(const AControlId: Integer; const AText: String); dann:TForm1.WM_SETTEXT(const AControlId: Integer; const AText: String); ?
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#3

AW: Externe Editbox mit Programm befüllen

  Alt 25. Jun 2010, 23:34
Ähm bestimmt nicht.
WM_SETTEXT ist eine Konstante. Um genauer zu sein, ist sie eine Message-Konstante.
Such lieber mal nach Hier im Forum suchenSendMessage() & Hier im Forum suchenPostMessage() und informiere dich darüber.

MfG
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
WizoHulk

Registriert seit: 25. Jun 2010
198 Beiträge
 
Delphi 5 Enterprise
 
#4

AW: Externe Editbox mit Programm befüllen

  Alt 28. Jun 2010, 09:10
Hmmm.

haut trotz SendMessage nicht hin. kann das sein, das da im Windows irgendwas blokiert wird?
denn das Programm liegt ja auf einen anderen Rechner.

Delphi-Quellcode:
procedure TForm1.SetEditText(const AControlId: Integer; const AText: String);
var
  LWnd: HWND; // Windows API, Erfordern ein Fenster Handle
begin
  SetLastError(0);
  LWnd := FindWindow('#32770', 'InputSearchDlg');
  LWnd := GetDlgItem(LWnd, AControlId);

  //LWnd := FindWindowEx(LWnd, 0, 'Edit', nil);

  if LWnd <> 0 then
    begin
    if not SetWindowTextW(LWnd, PWideChar(WideString(AText))) then
      ShowMessage(SysErrorMessage(GetLastError));
    end else
    begin
      windows.beep(400,100);
      messagebeep(MB_ICONERROR );
    end;


und den Button
Delphi-Quellcode:
procedure TForm1.ok_btnClick(Sender: TObject);
begin

  SendMessage(18025, StringGrid1.Cells[1, StringGrid1.Selection.Top]);
  
//SetEditText(18025, StringGrid1.Cells[1, StringGrid1.Selection.Top]);
  
//SetEditText(18026, StringGrid1.Cells[2, StringGrid1.Selection.Top]);

//SetEditText(18027, StringGrid1.Cells[3, StringGrid1.Selection.Top]);
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Externe Editbox mit Programm befüllen

  Alt 28. Jun 2010, 09:44
Hallo,

Zitat:
denn das Programm liegt ja auf einen anderen Rechner.
OHA.

Diese Info kommt aber etwas spät.

Hast du dir mal überlegt,
woher FindWindow das Handle bekommen soll,
wenn nicht mal die IP oder der Computername im Code steht ???

Was du willst geht so nicht.

Auf dem anderen Rechner muss ein kleines (von dir geschriebenes Server-Programm) gestartet sein,
mit dem du per TCP-IP kommunizierst (z.B. per Indy).
Das Programm kann dann das FindWindow machen.


Heiko
Heiko
  Mit Zitat antworten Zitat
WizoHulk

Registriert seit: 25. Jun 2010
198 Beiträge
 
Delphi 5 Enterprise
 
#6

AW: Externe Editbox mit Programm befüllen

  Alt 28. Jun 2010, 10:11
Hallo,

ich steuer das über den Remotedebugger.
Der fernrechner startet ja beide Programme und wenn ich auf den OK Button drücke, soll er ja die Daten aus dem Stringgrid die ich vorher auswähle in das andere Programm mit dem Editfeld (18025,18026 und 18027) reinladen.

ich hab auch eine Anweisung gegeben falls er die editfelder nicht finden sollte, das er dann ein Signal von sich gibt.

Er sagt mir ja anicht, das die Editboxen nicht vorhanden sind.
Das muss ja heißen, das er sie je gefunden hat und das er die Werte aus der Tabelle in die Editboxen befeuern kann, was er nicht macht.
  Mit Zitat antworten Zitat
WizoHulk

Registriert seit: 25. Jun 2010
198 Beiträge
 
Delphi 5 Enterprise
 
#7

AW: Externe Editbox mit Programm befüllen

  Alt 28. Jun 2010, 14:19
Habe mir eben mal nen kleines Testprogramm geschrieben, und da hat es Funktioniert einmal für den AuslöserSendMessage(19055,WM_SetText,0,integer(PChar(edit1.Text))); und einmal die Function
Delphi-Quellcode:
var
    LWnd: HWND; // Windows API, Erfordern ein Fenster Handle

  begin
    SetLastError(0);
    LWnd := FindWindow(#32770, 'InputSearchDlg');
    LWnd := GetDlgItem(LWnd, AControlId);
    
  if LWnd <> 0 then
    begin
   if not SetWindowTextW(LWnd, PWideChar(WideString(AText))) then
      ShowMessage(SysErrorMessage(GetLastError));
    end else
    begin
      ShowMessage('Handle nicht gefunden');
      windows.beep(400,100);
      messagebeep(MB_ICONERROR );
    end;
aber bei dem anderen nicht.obwohl es fast der gleiche Code ist.

kann es vileicht sein, das windows es abblockt, auf der höchsten Priorität steht.
das Programm ist im Autostart und mann kommt ganz schlecht auf den Desktop, da es Permanent immer in den Vordergrund gestellt wird.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz