Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Internet Explorer öffnen und PID erhalten zum späteren Close (https://www.delphipraxis.net/125709-internet-explorer-oeffnen-und-pid-erhalten-zum-spaeteren-close.html)

renekr 10. Dez 2008 09:47


Internet Explorer öffnen und PID erhalten zum späteren Close
 
Hi,
Ich bin soeben dran einen Internet Explorer per Delphi Tool zu öffnen und später wieder schliessen zu müssen.

Allerdings möchte ich beim Start gleich die PID zurück bekommen.
Ist sowas möglich ?

Danke

Luckie 10. Dez 2008 09:56

Re: Internet Explorer öffnen und PID erhalten zum späteren C
 
Oft gefragt, oft beantwortet und nie gesucht. Dies kannst du entweder mit MSDN-Library durchsuchenCreateProcess oder mit MSDN-Library durchsuchenShellexecuteEx machen. Allerdings sollte man es möglichst vermeiden einen Prozess einfach abzuschiessen.

renekr 10. Dez 2008 10:18

Re: Internet Explorer öffnen und PID erhalten zum späteren C
 
Hi,
Hab schon gesucht aber leider nix passendes gefudnen.
Ich will ja auch noch eine Spezielle URL mit dem IE aufmachen .
Geht das mit dem CreateProcess?

Ich habe es mit dem ShellExecute gemacht aber da bekomme ich keine PID zurück,sondern muss die Process Lsite vorher udn nachher durch prüfen .
Und das will ich eigentlich nciht.
Danke

DeddyH 10. Dez 2008 10:34

Re: Internet Explorer öffnen und PID erhalten zum späteren C
 
Du hast nicht richtig gelesen, statt ShellExecute ShellExecuteEx, damit bekommst Du auch das Prozesshandle.

renekr 10. Dez 2008 11:09

Re: Internet Explorer öffnen und PID erhalten zum späteren C
 
Hi,
so ich hab nun die ShellExecuteEx aufgerufen .
Und in der TShellExecuteInfo bekomme ich das Process Handle zurück.
Wenn ich nun das Handle in isWindow(hWindowHandle) prüfe ist es false.

Also kann er den neu geöffneten Explorer über das Handle nicht finden.

Mach i da was falsch ?

Edit: So hab eine Funktion KillProcess die das WindowsHandle als Parameter wollte,habs geändert und es geht nun.


Vielen Dank für die Denkhilfe...

DeddyH 10. Dez 2008 11:12

Re: Internet Explorer öffnen und PID erhalten zum späteren C
 
Du hast das Prozesshandle und kein Fensterhandle, deshalb gibt IsWindow false zurück.

Luckie 10. Dez 2008 11:18

Re: Internet Explorer öffnen und PID erhalten zum späteren C
 
Zitat:

Zitat von renekr
Mach i da was falsch ?

Du liest nicht, was du selber schreibst:

Zitat:

Und in der TShellExecuteInfo bekomme ich das Process Handle zurück.
Wenn ich nun das Handle in isWindow(hWindowHandle) prüfe ist es false.
Ein Prozesshandle ist ein Prozesshandle und kein Fensterhandle.

Es wird dir nichts anderes übrig bleiben als das Fenster mit MSDN-Library durchsuchenFindWindow oder MSDN-Library durchsuchenEnumWindows zu suchen, um an das Fensterhandle zu kommen.

renekr 10. Dez 2008 11:41

Re: Internet Explorer öffnen und PID erhalten zum späteren C
 
Hi,
ja das habe ich leider schon bemerkt,war mit schreiben einfach zu schnell,sorry.

Aber trotzdem vielen Dank.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:20 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