Entwickler-Ecke

Windows API - Fremde Forms während der Laufzeit bearbeiten


nightmare - Mo 08.12.03 23:32
Titel: Fremde Forms während der Laufzeit bearbeiten
Ich würde gerne ein fremdes Form (das gerade läuft)
so bearbeiten, dass z.B. ein button darauf verschwindet ...
1. wie suche ich nach dem button
2. wie verstecke ich ihn

danke !


DeCodeGuru - Mo 08.12.03 23:44

Ähm, was meinst du mit "fremdes Form". Meinst du das Fenster eines fremden Programmes?

Wenn ja, dann such mal nach FindWindow und FindWindowEx. Für das Verstecken bzw. Anzeigen kannste mal nach ShowWindow schauen.


ErnestoChe - Di 09.12.03 00:39

Hi,

hier mal ein kleines Beispiel anhand des Windows-Taschenrechners, bei dem der Radiobutton 'Deg' ausgeblendet wird:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm1.Button1Click(Sender: TObject);
var
  hCalc,
  hBtn: HWND;  // Die Handles für das Hauptfenster und für den Radiobutton
begin
    // Hauptfenster anhand Caption ermitteln
  hCalc := FindWindow(nil, 'Rechner');
    // Radiobutton anhand Klassenname, Elternfenster und Beschriftung ermitteln
  hBtn := FindWindowEx(hCalc, 0, 'BUTTON', 'Deg');

    // mit Parameter SW_HIDE verstecken
  ShowWindow(hBtn, SW_HIDE);
  // ShowWindow(hBtn, SW_HIDE); // SW_SHOW würde wieder einblenden
end;


Eventuell solltest du dir noch dir Api-Funktionen Suche bei Google ENUMWINDOWS und Suche bei Google ENUMCHILDWINDOWS anschauen.

MFG

- Ernesto -