Autor |
Beitrag |
DerNetteNachbar 
      
Beiträge: 224
|
Verfasst: Fr 12.12.08 17:06
Delphi-Quelltext 1:
| GetWindowThreadProcessID(Wnd,@pid); | Doppeldeutiger Überladener Aufruf von dieser Funktion
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 12.12.08 17:13
Dann musst Du mal die Codevervollständigung in Anspruch nehmen oder eine gute Stunde warten, ich kann hier mit Delphi 5 nicht nachsehen.
|
|
DerNetteNachbar 
      
Beiträge: 224
|
Verfasst: Fr 12.12.08 17:27
Wie geht denn eine Codevervollständigung
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 12.12.08 17:29
Gib mal GetWindowThreadProcessID( ein und warte ein wenig oder drücke CTRL - SPACE. Dann sollte ein Hintfenster mit möglichen Parametern erscheinen.
|
|
DerNetteNachbar 
      
Beiträge: 224
|
Verfasst: Fr 12.12.08 17:32
Ahso das meinst du, da hab ich vorhin schon getan, leider kommen da beim 2ten. Parameter zwei Möglichkeiten in Frage (Cardinal und Pointer) und keins der beiden scheint zu klappen.
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 12.12.08 17:36
Und wenn Du das @-Zeichen weglässt?
|
|
DerNetteNachbar 
      
Beiträge: 224
|
Verfasst: Fr 12.12.08 17:44
Schon alles erdenkliche versucht, nichts klappt......welche uses Klausel sollte eigentlich eingebunden werden.
Hab den Verdacht ,dass das ich nicht die richtige Klausel drin habe.
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 12.12.08 17:47
Nächster Versuch:
Delphi-Quelltext 1:
| Windows.GetWindowThreadProcessID(Wnd,@pid); |
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 12.12.08 17:57
Ich hab jetzt gleich Feierabend und versuch es zu Hause unter Delphi 2007 nochmal.
|
|
DerNetteNachbar 
      
Beiträge: 224
|
Verfasst: Fr 12.12.08 17:59
Gut das klappt  , man man das war vielleicht eine schwere Geburt.
Ich danke vorallem dem DeddyH das er soviel Gedult mit mir hatte  ......
Ich versuche mich zu bessern und nicht soviele Fragen zu stellen.
MfG Nachbar
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 12.12.08 18:43
Mir ist da noch ein anderer Ansatz eingefallen *g*
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure ListOwnForms(const sl: TStrings; OnlyVisible: Boolean = True); var i: Integer; begin sl.BeginUpdate; try for i := 0 to Screen.FormCount - 1 do if Screen.Forms[i].Showing or not OnlyVisible then sl.Add(Screen.Forms[i].Caption); finally sl.EndUpdate; end; end; |
|
|
DerNetteNachbar 
      
Beiträge: 224
|
Verfasst: Sa 13.12.08 14:26
Eigentlich sollte es ja möglichst mit API Funktionen gehen, da ich auch DLL Aufrufe aus meinen Programm erkennen muss. Und soviel ich weiss werden Forms aus DLL nicht als Child Fenster angezeigt? Oder gibt es da etwa doch einen Kniff?
MfG
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 13.12.08 14:31
Ach, es geht um DLLs, das muss ich überlesen haben. IIRC hat die DLL ein anderes Prozesshandle als die aufrufende Instanz, das stimmt schon.
|
|
DerNetteNachbar 
      
Beiträge: 224
|
Verfasst: Sa 13.12.08 14:46
Und was heisst das jetzt für mich im konkreten?
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 13.12.08 14:53
Du müsstest dann nicht das eigene Prozesshandle übergeben, sondern das der DLL.
|
|
DerNetteNachbar 
      
Beiträge: 224
|
Verfasst: So 14.12.08 22:54
Und wie stelle ich das an?
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 14.12.08 23:23
Ich nehme an du lädst die DLL mit LoadLibrary, und die Funktion gibt dir das Handle der DLL zurück.
|
|
DerNetteNachbar 
      
Beiträge: 224
|
Verfasst: Mo 15.12.08 10:21
Nein ich lade die DLL statisch, sprich ich binde diese einfach per external Klausel ein. Ich wüsste jetzt nicht partou wie ich das Handle der DLL rauskriegen würde.
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 15.12.08 11:25
Wenn es Deine eigene DLL ist, könntest Du sie eine entsprechende Funktion exportieren lassen.
|
|
DerNetteNachbar 
      
Beiträge: 224
|
Verfasst: Mo 15.12.08 12:31
Ich muss von einer DLL einer anderen das Handle der DLL mitteilen.
|
|