AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi FensterText per ProcessID bekommen?
Thema durchsuchen
Ansicht
Themen-Optionen

FensterText per ProcessID bekommen?

Ein Thema von sk0r · begonnen am 12. Jan 2008 · letzter Beitrag vom 9. Mai 2009
Antwort Antwort
Seite 1 von 2  1 2      
sk0r

Registriert seit: 1. Mai 2007
181 Beiträge
 
Delphi 7 Enterprise
 
#1

FensterText per ProcessID bekommen?

  Alt 12. Jan 2008, 14:31
Hi,

kurze und schnelle Frage: WIe kann ich per WinAPI den
Text des Fensters einer Anwendung bekommen deren ProcessID
ich habe? Ich finde bei MSDN leider keine API.

Danke im Vorraus für Hilfe

MfG: sk0r
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#2

Re: FensterText per ProcessID bekommen?

  Alt 12. Jan 2008, 14:33
von der pid solltest du irgendwie zum hauptfenster kommen, und das handle des hauptfensters kann in GetWindowText(Len) packen.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Wotan89

Registriert seit: 20. Nov 2007
77 Beiträge
 
Delphi 2005 Personal
 
#3

Re: FensterText per ProcessID bekommen?

  Alt 12. Jan 2008, 14:36
http://msdn2.microsoft.com/en-us/library/ms633520(VS.85).aspx
  Mit Zitat antworten Zitat
sk0r

Registriert seit: 1. Mai 2007
181 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: FensterText per ProcessID bekommen?

  Alt 12. Jan 2008, 14:38
GetWindowText() habe ich schon ausprobiert. MEin Ziel ist es,
dass eine injizierte DLL den Fenstertext des Zielprogrammes zu bekommen.

Code:
procedure TForm1.FormCreate(Sender: TObject);
var
  myBuf: array[0..250] of Char;
begin
  setlasterror(ERROR_SUCCESS);
  GetWindowText(0, myBuf, sizeof(myBuf));
  showmessage(myBuf);
  showmessage(syserrormessage(getlasterror));
end;
Die Eigene Anwendung hat doch immer die Nummer 0, oder?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: FensterText per ProcessID bekommen?

  Alt 12. Jan 2008, 14:46
nein, auch die eigene Anwendung hat nicht die 0
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
sk0r

Registriert seit: 1. Mai 2007
181 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: FensterText per ProcessID bekommen?

  Alt 12. Jan 2008, 14:49
Also GetWindowText kann nicht einfach so funktionieren, da es ja
selbst ein Handle als Parameter benötigt. Aber wie komme ich da drann? :/
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#7

Re: FensterText per ProcessID bekommen?

  Alt 12. Jan 2008, 15:14
ähm, getcurrentprocess oder so ähnlich sollte dir die procid geben... und dann weiter wie in meinem ersten post ^^
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
sk0r

Registriert seit: 1. Mai 2007
181 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: FensterText per ProcessID bekommen?

  Alt 12. Jan 2008, 15:15
schon klar, aber wie komme ich denn an das fenster handle?^^
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#9

Re: FensterText per ProcessID bekommen?

  Alt 12. Jan 2008, 15:18
aus der google-suche entnommen:

Zitat:
Enumerate all windows (EnumWindows()), get process ID for each one (GetWindowThreadProcessId()). Compare it with process ID you've got and if the same you found your window.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#10

Re: FensterText per ProcessID bekommen?

  Alt 12. Jan 2008, 16:29
Die meisten Prozeße werden mehrere Fenster haben. Schlimmer noch, dank der Tatsache, daß es sowas wie ein "Hauptfenster" nicht gibt (ein Prozeß kann da auch mehrere mit dem entsprechenden Fensterstil haben), mußt du wohl, wie schon erwähnt durch alle Fenster gehen und ermitteln ob das gewünschte dabei ist. Da wird wohl nur eine Kombination aus Text, Klasse und Stil (o.ä.) einen Erfolg bringen. Wenn du nur den Text ermittelst, kann das schiefgehen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 09:06 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