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 ProcessID ist Null bei ShellExecuteEx, wenn schon gestartet (https://www.delphipraxis.net/93850-processid-ist-null-bei-shellexecuteex-wenn-schon-gestartet.html)

stoxx 12. Jun 2007 12:16


ProcessID ist Null bei ShellExecuteEx, wenn schon gestartet
 
Hallo,

ich starte über die Lösung von Assarbad ein beliebiges Programm.

http://www.delphipraxis.net/internal...t=shellexecute

ermittle dann aus dem Process Handle die processID. (Über NicoDE's Speziallösung :-)
Mit EnumWindows finde ich dann das Hauptfenster.

Dummerweise ist es so, wenn ich eine Excel Datei darüber starte, und Excel schon gestartet ist, dann liefert mir dieser Vorgang eine ProcessID von Null.
Wie bekomme ich die ProcessID heraus, wenn das programm schon gestartet ist, ich aber keine näheren Informationen habe, um welches Programm es sich handelt. Möchte also nicht Createprocess nehmen, da mir keine näheren Informationen vorliegen

vielen Dank !

Olli 9. Sep 2007 00:33

Re: ProcessID ist Null bei ShellExecuteEx, wenn schon gesta
 
Excel versteht doch aber auch DDE und du solltest sogar mit der Instanzierung der entsprechenden COM-Objekte ans Ziel kommen. Da gab es vor einigen Jahren viel Stoff zu dem Thema in allen Foren.

Muetze1 9. Sep 2007 16:27

Re: ProcessID ist Null bei ShellExecuteEx, wenn schon gesta
 
Excel hält immer nur eine laufende Instanz von daher wird dein zweiter Startversuch so ablaufen, dass diese neue Instanz ihre Parameter an die laufende gibt und sich dann beendet. Von daher ist ein ProcessID von 0 recht logisch, da die neu gestartete Instanz sich wieder beendet und somit kein Prozess mehr ist.


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