Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Fremde Anwendung steuern (https://www.delphipraxis.net/80776-fremde-anwendung-steuern.html)

skh 15. Nov 2006 07:36


Fremde Anwendung steuern
 
Hallo,
ich muss ein Delphi-Programm schreiben um eine FREMDE Anwendung, das Anwendungsfenster enthält ein TEdit sowie ein OK-Button, zubearbeiten.
Diese fremde Anwendung muss nach einer gewissen Zeit mittels Passwort und Drücken des OK-Buttons, neu aktiviert werden. Danach ist dieses Fenster wieder geschlossen.

Das Fenster ist nach Inaktivität des Fremdprogrammes wieder auf dem Desktop vorhanden.
Ich wollte nun mittels Timer in bestimmten Zeitabständen abfragen ob dieses Fenster vorhanden ist.
Wenn Ja, muss mit MEINER Delphi-Anw. von dem fremden Programm

1. das Fenster gefunden werden (hab ich schon im Netz gefunden!)
2. Tedit mit dem bekannten Passwort gefüllt werden (noch nicht gelöst!)
3. der OK-Button aktiviert werden (noch nicht gelöst!)

diese beiden letzten Punkte zu realisieren ist nun mein Problem.
Leider hab ich von API keien Ahnung.
Vielleicht kann mir da jemand weiterhelfen.

RavenIV 15. Nov 2006 07:42

Re: Fremde Anwendung steuern
 
Zitat:

Zitat von skh
diese beiden letzten Punkte zu realisieren ist nun mein Problem.
Leider hab ich von API keien Ahnung.
Vielleicht kann mir da jemand weiterhelfen.

Hilfe kannst Du hier bekommen:
Für API ist das MSDN zuständig,
Dann kannst Du die Suche hier im Forum bemühen (z.B. als Suchbegriffe: "fremde Anwendung" oder "fernsteuern"). Da sollten jede Menge Einträge kommen.
Und dann gibt es natürlich auch noch die Delphi-Hilfe für die elementaren Fragen.
Weiterhin gibt es eine Sparte "Tutorials" hier im Forum.

SirThornberry 15. Nov 2006 07:44

Re: Fremde Anwendung steuern
 
Generell geht es über das senden von Messages (z.B.: wm_settext)

StefanG 15. Nov 2006 07:59

Re: Fremde Anwendung steuern
 
Zitat:

Zitat von skh
2. Tedit mit dem bekannten Passwort gefüllt werden (noch nicht gelöst!)

Code:
procedure TForm4.FormCreate(Sender: TObject);
var
  wnd: HWND;
begin
  wnd := FindWindow('TForm1','Form1');
  wnd := FindWindowEx(wnd, 0, 'TEdit', nil);
  if wnd <> 0 then
  begin
    SendMessage(wnd,WM_SETTEXT,0,Integer(Pchar('deinPasswort hier')));
  end;
end;
Tform1 ist hierbei der Classname der Form die du ansprechen willst und Form1 ist die Caption
Tedit ist der Classname vom Edit (könnte bei deinem Fenster anders heißen

Zitat:

3. der OK-Button aktiviert werden (noch nicht gelöst!)
fast genau so

Code:
...
  wnd := FindWindow('TForm1','Form1');
  wnd := FindWindowEx(wnd, 0, nil, 'OK');
  if wnd <> 0 then
  begin
    SendMessage(wnd,BM_CLICK,0,0);
  end;
...
nicht getestet, sollte aber gehen

DP-Maintenance 15. Nov 2006 18:14

DP-Maintenance
 
Dieses Thema wurde von "Daniel" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Windows API / MS.NET Framework API" verschoben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:23 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