AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

String in Fremder Anwendung finden

Ein Thema von jacky213 · begonnen am 25. Jun 2017 · letzter Beitrag vom 5. Jul 2017
Antwort Antwort
Seite 1 von 2  1 2      
jacky213

Registriert seit: 2. Mär 2011
146 Beiträge
 
#1

String in Fremder Anwendung finden

  Alt 25. Jun 2017, 14:57
Hallo,

ich suche nach einer Möglichkeit einen String in einer Fremden Anwendung zu suchen und auszuwählen. Ich habe es bereits hinbekommen einen ListBox Eintrag zu suchen und zu markieren aber der Code funktioniert in einem anderen bereich der selben Anwendung nicht (Könnte sein, dass es dort keine Listbox sondern eine Listview ist).

Das ist der Code der bisher mit der Listbox funktioniert hat.

Delphi-Quellcode:
Procedure TitelAusw(fname, suchstring:string);
var
  wnd: HWND;
begin
  wnd := FindWindow('TAudioManager', 'AudioManager');
  wnd := FindWindowEx(wnd, 0, 'TAlbListe', nil);
sleep(250);
if SendMessage(wnd, lb_selectstring, -1,
longint(PChar(suchstring)))<>LB_ERR then begin
SendMessage(wnd, WM_LBUTTONDOWN, -1, longint(PChar(suchstring)));
SendMessage(wnd, WM_LBUTTONUP, -1, longint(PChar(suchstring)));
end;
end;
Die Liste sieht aus wie eine Listview und der String den ich suche befindet sich in den SubItems.

Danke schonmal
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#2

AW: String in Fremder Anwendung finden

  Alt 25. Jun 2017, 15:18
Dass dein Code überhaupt halbwegs funktioniert, ist fast schon ein Wunder, wo doch die Parameter für MSDN-Library durchsuchenWM_LBUTTONDOWN und MSDN-Library durchsuchenWM_LBUTTONUP nicht wirklich richtig sind.

Zitat:
Könnte sein, dass es dort keine Listbox sondern eine Listview ist
Dann mußt du eben auch die API für eine Listview verwenden, wenn es eine Listbox ist.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#3

AW: String in Fremder Anwendung finden

  Alt 25. Jun 2017, 15:26
bemühe mal die Googlesuche nach (Win)Spy...


Diese Art von Tools zeigen dir, ob es überhaupt ein auslesbares Anzeigeelement gibt.
Wenn OwnerDraw nur eine Grafik "gemalt" wirst, hast du ohne eine eigene "ScreenOCR" Logik kaum eine Möglichkeit.

Da es aber seitens WindowsSecurity eh immer schwerer wird auf fremde Fenster und deren Elemente Zugriff zu bekommen, solltest du liebe gleich den Weg per ScreenOCR gehen.

- hier mach es einer "kostenlos" per Zugriff auf eine freies MS-Interface
http://blog.m-ri.de/index.php/2010/0...omment-page-1/

-das Tool ist ein SDK und kostet Geld, funktioniert aber auf eigenen vollautomatisierteb Systemen zu 100%, wenn man ClearType abstellt
http://www.screenocrsdk.com/screen-ocr-library.htm
  Mit Zitat antworten Zitat
jacky213

Registriert seit: 2. Mär 2011
146 Beiträge
 
#4

AW: String in Fremder Anwendung finden

  Alt 25. Jun 2017, 15:35
danke für die Ansätze,

@himitsu

hättest du ein Beispiel dafür?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

AW: String in Fremder Anwendung finden

  Alt 25. Jun 2017, 18:37
An einen Listview in einer fremden Anwendung kommst du nicht so einfach dran, da es kein Kontrollelemente aus der 16-Bit Zeit ist.
Sehe dazu mein Programm 'LuckieDIPS': http://michael-puff.de/Programmierung/Delphi/Programme/
Letztendlich musst du Speicher im fremden Prozess reservieren mit der Listview-Strucktur, dort die Daten vom Listview reinschreiben und dann den Speicher mit der Listview-Strucktur zurück in deinen eigenen Speicherbereich kopieren. Dann hast du die Infos. Nicht unbedingt trivial.

Was hast du denn eigentlich vor?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: String in Fremder Anwendung finden

  Alt 25. Jun 2017, 18:51
Zitat:
Was hast du denn eigentlich vor?
Cheaten?

gruss
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#7

AW: String in Fremder Anwendung finden

  Alt 25. Jun 2017, 19:26
Zitat:
Was hast du denn eigentlich vor?
Cheaten?
Eher unwahrscheinlich, dass du eine standard Win32 ListBox in einem Game findest Spiele reagieren auch in der Regel nicht auf Window Messages, sondern verwenden DirectInput für die Tastatur/Maus-Eingaben.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

AW: String in Fremder Anwendung finden

  Alt 25. Jun 2017, 20:36
Zitat:
Was hast du denn eigentlich vor?
Cheaten?
Eher unwahrscheinlich, dass du eine standard Win32 ListBox in einem Game findest Spiele reagieren auch in der Regel nicht auf Window Messages, sondern verwenden DirectInput für die Tastatur/Maus-Eingaben.
JO
Aber man kann es ja mal versuchen.

gruss
  Mit Zitat antworten Zitat
jacky213

Registriert seit: 2. Mär 2011
146 Beiträge
 
#9

AW: String in Fremder Anwendung finden

  Alt 27. Jun 2017, 18:14
Es geht um eine Musik und Alben Verwaltung und ich bin da bis jetzt nicht weiter gekommen.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: String in Fremder Anwendung finden

  Alt 27. Jun 2017, 18:20
Nimm doch erst einmal das genannte Tool "WinSpy", damit kannst du genau die Elemente deiner Ziel-Anwendung untersuchen, welchen Klassennamen das Element hat das du haben willst, ...
  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 05:44 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