AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Werte aus der Statuszeile auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Werte aus der Statuszeile auslesen

Ein Thema von Cuchulainn · begonnen am 11. Nov 2003 · letzter Beitrag vom 11. Nov 2003
Antwort Antwort
Cuchulainn

Registriert seit: 26. Aug 2003
182 Beiträge
 
Delphi 5 Enterprise
 
#1

Werte aus der Statuszeile auslesen

  Alt 11. Nov 2003, 07:15
Morgen,

Ich habe folgendes Problem: Ich soll ein Programm schreiben, mit dem wir Tests für ein anderes Programm automatisieren können. Tastaturbefehle senden und Mausbewegungen und -klicks kann ich jetzt simulieren. Zum Testen muss ich Werte, die in der Statuszeile stehen, mit anderen Werten überprüfen.
Die Statuszeile sieht etwas folgendermaßen aus:
Zahl | Bezeichnung | Datum | Anzahl Datensätze

Ich erkläre jetzt nicht, was die einzelnen Angaben bedeuten, für mich ist nur die Anzahl der Datensätze relevant. Ich muss also auslesen, was in diesem Moment an vierter Stelle in der Statuszeile steht und das mit einem anderen Wert vergleichen. Komme ich irgendwo da dran?
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: Werte aus der Statuszeile auslesen

  Alt 11. Nov 2003, 07:20
Kuck mal in Luckie's nonVCL Tuts(wegen der Statuszeile). da steht (glaub ich)irgendwo(ich jetzt nich genau wo) drin, wie man das mit den Statuszeilen macht. Meine Idee wäre, das Handle des entsprechenden Teiles der Zeile zu finden und mit
Delphi-Quellcode:
var buffer: array[1..255] of char;
begin
  GetWindowText(WindowHandle, buffer, sizeof(buffer));
end;
den Text zu holen.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Werte aus der Statuszeile auslesen

  Alt 11. Nov 2003, 10:21
Nein, so geht das nicht. Grund: Die Statusbar gehört zu den CommonControls und die werden unter 32-Bit Windows anders behandelt, als die "normalen" Controls. Und zwar sieht es so aus. Unter 16-Bit konnte jeder Prozess auf den Adressraum jedes anderen Prozesse zugreifen. Davon haben auch vilele Programme gebrauch gemnacht, so dass sich Microsoft gezwungen sah, solhe Nachrichten an "normale" Controls (Edits, Listboxe, etc. in einen gemeinsamen Speicherbereich zu mappen, damit diese Programme noch funktionieren. Deswegen kann man mit WM_GETTEXT das Edit eines anderen Prozesse auslesen aber nicht die Eigenschaften eines CommonControls, da Microsoft bei diesen Controls, die erst ab 32-Bit dazu kamen, diese sonder Behandlung der Nachrichten nicht implementiert hatte - man musste ja nicht abwärtskompatible sein.
Lösung für NT ff.: Speicher im fremden Prozess mit VirualAllocEx reservieren, die Sattusbar auslesen und seine mit WriteProzessMemory in diesen Speicherbereich schreiben und dann mit ReadPreocessMemory, diesen Speicherbereich in eine identische Struktur im eigenen Speicherbereich kopieren.
Diese Vorgehensweise benutze ich, um die Icons und deren Positionen Listview des Desktops, der zum Explorer-Prozess gehört, auszulesen und zu speichern, um sie dann wieder herstellen zu können. Kuck dir einfach dazu mein Programm LuckieDips an.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Cuchulainn

Registriert seit: 26. Aug 2003
182 Beiträge
 
Delphi 5 Enterprise
 
#4

Re: Werte aus der Statuszeile auslesen

  Alt 11. Nov 2003, 11:06
Danke, aber ich kenne mich leider kaum mit der API aus. Kannst du vielleicht ein kleines Beispiel zusammenbasteln?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Werte aus der Statuszeile auslesen

  Alt 11. Nov 2003, 11:10
Die LuckieDips sind das Beispiel.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Cuchulainn

Registriert seit: 26. Aug 2003
182 Beiträge
 
Delphi 5 Enterprise
 
#6

Re: Werte aus der Statuszeile auslesen

  Alt 11. Nov 2003, 12:08
Zitat von Luckie:
Die LuckieDips sind das Beispiel.
Was meinst du damit?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Werte aus der Statuszeile auslesen

  Alt 11. Nov 2003, 12:13
Ja, das kannst du als Beispiel nehmen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Werte aus der Statuszeile auslesen

  Alt 11. Nov 2003, 12:16
www.luckie-online.de/downloads/LuckieDips1_3.zip
  Mit Zitat antworten Zitat
Cuchulainn

Registriert seit: 26. Aug 2003
182 Beiträge
 
Delphi 5 Enterprise
 
#9

Re: Werte aus der Statuszeile auslesen

  Alt 11. Nov 2003, 13:29
Danke. Ich sehe es mir mal an.
  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 10:45 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