Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Aus einer anderen Anwedung lesen. (https://www.delphipraxis.net/107071-aus-einer-anderen-anwedung-lesen.html)

toms 22. Jan 2008 16:23

Re: Aus einer anderen Anwedung lesen.
 
[quote="mdogg"]
Zitat:

Zitat von toms
Dabei geht es um die eine Statusbar innerhalb von Visual C++ Express. Ich möchte per Timer überwachen wann dort 'Erstellen erfolgreich' steht.

Der Statusbartext steht im Visual C++ Express nicht im Control msctls_statusbar32
sondern im VsStatusBar

Struktur der Fenster (Winspy)

Zitat:

7864848: wndclass_desked_gsk "Test - Visual C++ 2005 Express Edition"
8848014: VsStatusBar "Bereit Z 8 S 29 Zei 26 EINFG"
5898866: msctls_statusbar32
Code zum Ermitteln des Statusbartextes:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  wnd: HWND;
  StatusBarText: array[0..$FFF] of Char;
begin
  wnd := FindWindow('wndclass_desked_gsk', nil);
  wnd := FindWindowEx(wnd, 0, 'VsStatusBar', nil);
  if wnd <> 0 then
  begin
    SendMessage(wnd, WM_GETTEXT, $FFF, Longint(@StatusBarText));
    Showmessage(StatusBarText);
  end;
end;

mdogg 22. Jan 2008 16:47

Re: Aus einer anderen Anwedung lesen.
 
[quote="toms"]
Zitat:

Zitat von mdogg
Zitat:

Zitat von toms
Dabei geht es um die eine Statusbar innerhalb von Visual C++ Express. Ich möchte per Timer überwachen wann dort 'Erstellen erfolgreich' steht.

Der Statusbartext steht im Visual C++ Express nicht im Control msctls_statusbar32
sondern im VsStatusBar

Struktur der Fenster (Winspy)

Zitat:

7864848: wndclass_desked_gsk "Test - Visual C++ 2005 Express Edition"
8848014: VsStatusBar "Bereit Z 8 S 29 Zei 26 EINFG"
5898866: msctls_statusbar32
Code zum Ermitteln des Statusbartextes:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  wnd: HWND;
  StatusBarText: array[0..$FFF] of Char;
begin
  wnd := FindWindow('wndclass_desked_gsk', nil);
  wnd := FindWindowEx(wnd, 0, 'VsStatusBar', nil);
  if wnd <> 0 then
  begin
    SendMessage(wnd, WM_GETTEXT, $FFF, Longint(@StatusBarText));
    Showmessage(StatusBarText);
  end;
end;

Wunderbar!! Bleibt nur noch eine Frage:
Wo soll ich deinen Tempel hinbauen?


Ich glaube einfacher kann man die Sache nicht lösen!!
Danke an Alle die Zeit und Nerven geopfert haben. Besonderen Dank an toms für die schlanke, elegante Lösung und besonderen Dank an bitsetter, der wohl am meisten unter mir zu "leiden" hatte...


@toms:
Bist du gewillt mir noch die eine oder andere frage zum Verständnis per PM zu beantworten?


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:03 Uhr.
Seite 3 von 3     123   

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