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 Fremden Befehlszeilenaufruf umbiegen? (https://www.delphipraxis.net/106115-fremden-befehlszeilenaufruf-umbiegen.html)

PeterPanino 5. Jan 2008 18:22


Fremden Befehlszeilenaufruf umbiegen?
 
Hallo, wie kann ich folgendes erreichen: Ein beliebiges anderes Programm ruft eine Befehlszeile (mit einem Parameter) auf, z.B.:

Zitat:

C:\windows\notepad.exe "Irgendeine Textdatei.txt"
Wie kann ich nun diesen Aufruf "umbiegen" von notepad.exe auf ein anderes Programm? (Dabei sollte der übergebene Parameter erhalten bleiben).

STS301 5. Jan 2008 18:26

Re: Fremden Befehlszeilenaufruf umbiegen?
 
ich stehe auf der Leitung, wie wäre es mit OpenDialoge

sirius 5. Jan 2008 18:39

Re: Fremden Befehlszeilenaufruf umbiegen?
 
Du musst den Befehl Shellexecute oder CreateProcess (und nahe Verwandte) hooken. Suche dazu mal uallCollection

DeddyH 5. Jan 2008 18:41

Re: Fremden Befehlszeilenaufruf umbiegen?
 
Wenn ich Dich richtig verstanden habe, willst Du, wenn (z.B.) notepad aufgerufen wird, stattdessen Dein eigenes Programm starten? Dürfte man erfahren, was Du vorhast?

PeterPanino 5. Jan 2008 18:43

Re: Fremden Befehlszeilenaufruf umbiegen?
 
Mmh, ich habe selbst ein bisschen weitergedacht (zuerst dachte ich an so etwas wie ein Systemmomitoring-Hook), aber möglich wäre auch folgendes:

notepad.exe ersetzen durch ein eigenes Programm, das wiederum Notepad aufruft und den übergebenen Parameter an Notepad weitergibt. Nur dann, wenn eine definierte Bedingung erfüllt ist (ein bestimmter Parameter oder ein bestimmtes aufrufendes Programm), wird ein anderes definiertes Programm aufgerufen und diesem der Parameter übergeben. Nur: Wie kann mein Programm erkennen, von welchem Programm es aufgerufen wurde?

DeddyH 5. Jan 2008 18:44

Re: Fremden Befehlszeilenaufruf umbiegen?
 
Sorry, da bin ich überfragt, da müssen andere ran. :(

BenjaminH 5. Jan 2008 18:46

Re: Fremden Befehlszeilenaufruf umbiegen?
 
Wenn du weißt, dass nicht direkt Notepad aufgerufen wurde, sondern eine Textdatei geöffnet wird, könntest du auch die Dateinamenserweiterungen deinem Programm zuordnen.

PeterPanino 5. Jan 2008 18:47

Re: Fremden Befehlszeilenaufruf umbiegen?
 
Zitat:

Zitat von DeddyH
Wenn ich Dich richtig verstanden habe, willst Du, wenn (z.B.) notepad aufgerufen wird, stattdessen Dein eigenes Programm starten? Dürfte man erfahren, was Du vorhast?

Ich möchte einen Workaround für eine bestimmtes Anwendungsprogramm schreiben, das immer NotePad aufruft, um eine bestimmte Konfigurationsdatei zu editieren. Ich möchte nun, dass immer dann (und nur dann), wenn dieses Anwendungsprogramm Notepad die Datei übergibt, stattdessen ein bestimmtes anderes Programm aufgerufen wird, damit ich die Datei in diesem gewünschten Programm bearbeiten kann.

PeterPanino 5. Jan 2008 18:50

Re: Fremden Befehlszeilenaufruf umbiegen?
 
Zitat:

Zitat von BenjaminH
Wenn du weißt, dass nicht direkt Notepad aufgerufen wurde, sondern eine Textdatei geöffnet wird, könntest du auch die Dateinamenserweiterungen deinem Programm zuordnen.

Das geht nicht, weil das aufrufende Anwendungsprogramm nicht die Datei direkt aufruft, sondern notepad.exe mit der Datei als Parameter.

DeddyH 5. Jan 2008 18:52

Re: Fremden Befehlszeilenaufruf umbiegen?
 
Du könntest aber evtl. die Datei an sich überwachen (ShellNotify oder in der Art).

[edit] Nee, wohl Quatsch, ich glaube, das reine Öffnen löst noch kein Event aus. [/edit]


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