Einzelnen Beitrag anzeigen

Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#14

AW: DLl-Injection HWND der Hostapplikation herausfinden

  Alt 24. Jan 2011, 17:39
Probier Folgendes

Delphi-Quellcode:
function GetMainWindowHandle(): DWord;
var
  V: TPoint; // X = PID, Y = Result
  function GetRootWindow(hWnd: DWord): DWord;
  begin
    repeat
      Result := hWnd;
      hWnd := GetParent( Result );
    until hWnd = 0;
  end;
  function WinEnumProc(hWnd: DWord; lParam: Integer): LongBool; stdcall;
  var
    PID: DWord;
  begin
    Result := True;
    GetWindowThreadProcessId( hWnd, PID );
    if PID = PPoint(lParam)^.X then
    begin
        PPoint(lParam)^.Y := GetRootWindow( hWnd );
        Result := False;
    end;
  end;
begin
  try
    V := Point( GetCurrentProcessId(), INVALID_HANDLE_VALUE );
    EnumWindows( @WinEnumProc, Integer(@V) );
    Result := V.Y;
  except
    Result := INVALID_HANDLE_VALUE;
  end;
end;
Sry für den verwirrenden Code, habs schnell dahingetippt.. Dürfte aber funktionieren!
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG

Geändert von Aphton (24. Jan 2011 um 17:48 Uhr)
  Mit Zitat antworten Zitat