AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Aus der DLL heraus das Handle der Hostanwendung ermitteln?
Thema durchsuchen
Ansicht
Themen-Optionen

Aus der DLL heraus das Handle der Hostanwendung ermitteln?

Ein Thema von hitzi · begonnen am 30. Okt 2007 · letzter Beitrag vom 2. Nov 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von hitzi
hitzi

Registriert seit: 2. Jan 2003
Ort: Eibau
768 Beiträge
 
Delphi 2010 Professional
 
#1

Aus der DLL heraus das Handle der Hostanwendung ermitteln?

  Alt 30. Okt 2007, 09:09
Hallo,

gibt es eine Möglichkeit in einer DLL das Handle der Anwendung herauszufinden, welche eben diese DLL geladen hat?

Gruss
Thomas
Besucht doch mal http://www.hitziger.net
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: Aus der DLL heraus das Handle der Hostanwendung ermittel

  Alt 30. Okt 2007, 09:15
es gibt nicht DAS handle der Hauptanwendung, zumindest nicht das Fensterhandle.
Was genau willst du denn? das Prozesshandle, alle Fensterhandles, die HINSTANCE, ...?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von hitzi
hitzi

Registriert seit: 2. Jan 2003
Ort: Eibau
768 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Aus der DLL heraus das Handle der Hostanwendung ermittel

  Alt 30. Okt 2007, 09:20
Das Toplevel Window Handle möchte ich gern ermitteln. Ich möchte es umgehen, die Fenstercaption an die DLL zu übergeben, um dann mit FindWindowA das Handle zu ermitteln.
Thomas
Besucht doch mal http://www.hitziger.net
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: Aus der DLL heraus das Handle der Hostanwendung ermittel

  Alt 30. Okt 2007, 17:54
ein Toplevelfenster? Hmm, sowas gibts nicht wirklich so weit ich weiß. du musst ja auch nicht die Fenstercaption übergeben, du kannst auch direkt das Handle an die DLL übergeben.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Aus der DLL heraus das Handle der Hostanwendung ermittel

  Alt 30. Okt 2007, 17:57
Mir fiele spontan noch ein, mit EnumWindows alle Top-Level-Fenster zu enumerieren und dann mit GetWindowThreadProcessId zu prüfen, welche der Host-Anwendung gehören.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: Aus der DLL heraus das Handle der Hostanwendung ermittel

  Alt 30. Okt 2007, 17:59
Form2, Form3 etc. sind auch Toplevel-Fenster.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von hitzi
hitzi

Registriert seit: 2. Jan 2003
Ort: Eibau
768 Beiträge
 
Delphi 2010 Professional
 
#7

Re: Aus der DLL heraus das Handle der Hostanwendung ermittel

  Alt 30. Okt 2007, 18:28
Das Problem an der ganzen Geschichte ist, dass es eine DLL ist, welche in einen anderen Prozess injeziert wird. Ich brauche dann in dieser DLL das Handle zu der Anwendung, welche die DLL in den Prozess injeziert hat und nicht das Handle des Prozesses in dem sich die DLL nach dem Injenzieren befindet.
Im Moment schreibe ich in CSIDL_APPDATA eine in bestimmte Datei in der dann das entsprechende Handle geschrieben ist. Das funktioniert bei einer Anwendung ganz gut. Aber später soll das entsprechende Programm auch mehrmals gestartet werden können und dann könnte es mit nur einer Datei Probleme geben. Die idealste Lösung wäre, dass die DLL von sich aus das richtige Handle ermitteln kann.
Thomas
Besucht doch mal http://www.hitziger.net
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Aus der DLL heraus das Handle der Hostanwendung ermittel

  Alt 30. Okt 2007, 18:36
Das erfahren wir aber früh. Wie injizierst du denn die DLL? Pauschal kann man aber sagen, dass die DLL es eigentlich nicht wissen kann, wer sie injiziert hat.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Aus der DLL heraus das Handle der Hostanwendung ermittel

  Alt 30. Okt 2007, 18:52
Dan injeziere doch das Handle mit
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von hitzi
hitzi

Registriert seit: 2. Jan 2003
Ort: Eibau
768 Beiträge
 
Delphi 2010 Professional
 
#10

Re: Aus der DLL heraus das Handle der Hostanwendung ermittel

  Alt 30. Okt 2007, 20:11
Leider steig ich da nicht durch, wie man bei diesen Vorgang einen Parameter mit übermitteln kann. Ich verwende die uallCollection zum Injezieren. Wenn es gar nicht geht, werd ich wohl das Handle über WM_COPYDATA an die DLL schicken. Aber noch hab ich Hoffnung das eleganter zu lösen.
Thomas
Besucht doch mal http://www.hitziger.net
  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:35 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