Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi GetCommandLine für fremde Anwendung (https://www.delphipraxis.net/108151-getcommandline-fuer-fremde-anwendung.html)

ringli 7. Feb 2008 21:23


GetCommandLine für fremde Anwendung
 
In meiner eigenen Anwendung kann ich über GetCommandLine den kompletten Kommandozeilenaufruf (also Pfad zur Anwendung inkl. evtl. vorhandener Parameter) erhalten.

Wie kann ich den kompletten Kommandozeilenaufruf für eine fremde Anwendung erhalten deren Fensterhandle ich habe? Ich habe jetzt schon stundenlang hier im Forum und bei Google gesucht, bin aber leider nicht fündig geworden.

bitsetter 7. Feb 2008 21:33

Re: GetCommandLine für fremde Anwendung
 
Hi,

mit Hilfe von der Funktion Windows.GetWindowThreadProcessID() und diesem Code müsste es gehen.

ringli 7. Feb 2008 22:29

Re: GetCommandLine für fremde Anwendung
 
Danke für deine Antwort. Leider scheint der Code nicht zu funktionieren. Die Funktion gibt bei mir leider nur einen leeren String zurück. GetLastError gibt nur 0 (Der Vorgang wurde erfolgreich beendet) zurück.

bitsetter 7. Feb 2008 23:51

Re: GetCommandLine für fremde Anwendung
 
:gruebel: Ich rufe die Funktion so auf:
Delphi-Quellcode:
var
  ProcId : DWORD;
begin
   GetWindowThreadProcessID(..., @ProcId);
   ShowMessage(AufrufParameter(ProcId));
und es wird kein leerer String zurückgegeben.

Was hast du denn eigentlich für ein OS?

ringli 8. Feb 2008 10:51

Re: GetCommandLine für fremde Anwendung
 
Hmmm... genauso hab ich es auch aufgerufen. :gruebel:

Ich habe es hier unter Vista getestet und da geht es definitiv nicht.

Habe aber grade mal Tests in einer VM unter XP und XP64 durchgeführt. Unter XP funktioniert der Code, unter XP64 ist jedoch auch Fehlanzeige.

OregonGhost 8. Feb 2008 12:17

Re: GetCommandLine für fremde Anwendung
 
Klingt so, als _sollte_ das nicht mehr funktionieren. Was passiert, wenn du deine Anwendung unter Vista mit Admin-Rechten startest und die fremde Anwendung mit normalen Rechten?

ringli 8. Feb 2008 12:27

Re: GetCommandLine für fremde Anwendung
 
Funktioniert auch mit Admin-Rechten nicht. Folgendes habe ich ausprobiert:

- Meine Anwendung als Administrator gestartet, fremde Anwendung mit normalen Rechten.
- Meine Anwendung als Administrator gestartet, fremde Anwendung als Administrator gestartet.

bitsetter 8. Feb 2008 12:43

Re: GetCommandLine für fremde Anwendung
 
Was noch gehen könnte wenn man mit Hilfe von Codeinjektion windows.GetCommandLine im fremden Prozess aufruft.

ringli 8. Feb 2008 13:02

Re: GetCommandLine für fremde Anwendung
 
Wie funktioniert das denn mit Codeinjektion? Hast du da zufällig einen Codeschnippsel parat?

bitsetter 8. Feb 2008 13:10

Re: GetCommandLine für fremde Anwendung
 
Parat wohl auch nicht gerade aber ich kann es ja heute mal ausprobieren ob es geht. Ansonsten kannst du mal nach Hier im Forum suchencreateremotethread suchen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:58 Uhr.
Seite 1 von 2  1 2      

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