AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Auslesen einer Statusbar eines anderen Programms
Thema durchsuchen
Ansicht
Themen-Optionen

Auslesen einer Statusbar eines anderen Programms

Ein Thema von phlux · begonnen am 22. Aug 2003 · letzter Beitrag vom 22. Aug 2003
Antwort Antwort
Benutzerbild von phlux
phlux

Registriert seit: 4. Nov 2002
Ort: Witten
1.335 Beiträge
 
Delphi 6 Personal
 
#1

Auslesen einer Statusbar eines anderen Programms

  Alt 22. Aug 2003, 12:46
Mahlzeit!
Ich hab an meinem PC einen Download Clienten, der während ich weg bin Sachen für mich runterlädt, leider hat dieser keine richtigen Statistik Funktionen, er zeigt jedoch an mit wieviel KB/sec er herunterlädt, jedoch nur in einem Feld der Statusbar. Meine Frage nun, wie kann ich mit meinem Prog genau diesen Wert aus dem anderen Prog auslesen??

mfg phluphie
Christian "phlux" Arndt
  Mit Zitat antworten Zitat
Benutzerbild von Memo
Memo

Registriert seit: 19. Aug 2003
509 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Auslesen einer Statusbar eines anderen Programms

  Alt 22. Aug 2003, 12:51
http://www.swissdelphicenter.ch/de/showcode.php?id=935

Evt. bringt es dich ein Stück weiter.
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#3

Re: Auslesen einer Statusbar eines anderen Programms

  Alt 22. Aug 2003, 12:51
ermittle das handle vom elternfenster mit findwindows und dann mit enumchildfenster das handle der statusbar , dann mit sendmessage um wm_ gettext erhälst du was in der statusbar drin steht.

im dp findest du auf jedenfall was
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Auslesen einer Statusbar eines anderen Programms

  Alt 22. Aug 2003, 12:51
Was du alles mit Statusbars machen kannst, kannst du im PSDK lesen. Schau dazu im Index nach Status Bar Reference

Das Problem hierbei ist: Das alles funktioniert nur im gleichen Adressraum. Unter NT-basierten Systemen kannst aber Speicher im fremnden Prozess reservieren und es von dort aus versuchen.
Geh mal in die OpenSource-Sparte und schau dir mal den Source von LuckieDIPS (oder so ähnllich), da macht er das gleiche mit einem Listview. Schau dir dabbei mal vor allem den Teil des Codes an, in dem VirtualAllocateEx aufgerufen wird.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Auslesen einer Statusbar eines anderen Programms

  Alt 22. Aug 2003, 13:18
Die Statusbar gehört zu den CommonControls, deswegen kann man nicht so einfach auf sie zugreifen. Bei Edits, etc. werden Messages wie WM_GETTEXT in einen gemeinsamen Adressraum gemappt, um die Kompatibilität zu alten 16-Bit Windows Programmen zu gewährleisten. Da es die CommonControls in dieser Form unter 16-Bit Windows so noch nicht gab, sah Microsoft keinen Sinn darin, diese Funktionalität auch unter 32-Bit Windows zur Verfügung zu stellen.

Zwei Möglichkeiten sehe ich da:
Entweder du machts es wie ich in meinen LuckieDIPS mit VirtualAlloEx und reservierst dir Speicher im fremden Process, schreibst mit WriteRrocessMemory rein und kopierst es mit ReadProcessMemory in einen eigenen Speicherbereich deiner Anwendung. Geht nur unter NT und höher.
Oder du injezier eine DLL in den remote Prozess und arbeitest mit WM_COPYDATA oder MMF's um die daten auszutauschen. Dies Funktioniert auch unter Windows 9x.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Memo
Memo

Registriert seit: 19. Aug 2003
509 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Auslesen einer Statusbar eines anderen Programms

  Alt 22. Aug 2003, 13:32
Niemand liest meine Beiträge
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Auslesen einer Statusbar eines anderen Programms

  Alt 22. Aug 2003, 13:39
Der Source macht genau das, was ich beschrieben habe. Kuck dir mal die Unit CreateProcessMemMgrForWnd aus dem Download an. Ich habe nur beschrieben, warum es nur so geht und eine weitere Möglichkeit aufgezeigt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Memo
Memo

Registriert seit: 19. Aug 2003
509 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Auslesen einer Statusbar eines anderen Programms

  Alt 22. Aug 2003, 13:43
Zitat von Luckie:
Der Source macht genau das, was ich beschrieben habe.
Das wollte ich damit auch nur ausdrücken.
  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 12:16 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