AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi GetCommandLine für fremde Anwendung
Thema durchsuchen
Ansicht
Themen-Optionen

GetCommandLine für fremde Anwendung

Ein Thema von ringli · begonnen am 7. Feb 2008 · letzter Beitrag vom 15. Apr 2008
Antwort Antwort
Seite 1 von 2  1 2      
ringli

Registriert seit: 7. Okt 2004
504 Beiträge
 
Delphi 11 Alexandria
 
#1

GetCommandLine für fremde Anwendung

  Alt 7. Feb 2008, 21:23
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.
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: GetCommandLine für fremde Anwendung

  Alt 7. Feb 2008, 21:33
Hi,

mit Hilfe von der Funktion Windows.GetWindowThreadProcessID() und diesem Code müsste es gehen.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
ringli

Registriert seit: 7. Okt 2004
504 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: GetCommandLine für fremde Anwendung

  Alt 7. Feb 2008, 22:29
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.
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: GetCommandLine für fremde Anwendung

  Alt 7. Feb 2008, 23:51
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?
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
ringli

Registriert seit: 7. Okt 2004
504 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: GetCommandLine für fremde Anwendung

  Alt 8. Feb 2008, 10:51
Hmmm... genauso hab ich es auch aufgerufen.

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.
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#6

Re: GetCommandLine für fremde Anwendung

  Alt 8. Feb 2008, 12:17
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?
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
ringli

Registriert seit: 7. Okt 2004
504 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: GetCommandLine für fremde Anwendung

  Alt 8. Feb 2008, 12:27
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.
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: GetCommandLine für fremde Anwendung

  Alt 8. Feb 2008, 12:43
Was noch gehen könnte wenn man mit Hilfe von Codeinjektion windows.GetCommandLine im fremden Prozess aufruft.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
ringli

Registriert seit: 7. Okt 2004
504 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: GetCommandLine für fremde Anwendung

  Alt 8. Feb 2008, 13:02
Wie funktioniert das denn mit Codeinjektion? Hast du da zufällig einen Codeschnippsel parat?
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: GetCommandLine für fremde Anwendung

  Alt 8. Feb 2008, 13:10
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.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:40 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