Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi ShellExecute,WinExec ändern aktuelle Verzeichnis (https://www.delphipraxis.net/10991-shellexecute-winexec-aendern-aktuelle-verzeichnis.html)

schind1978 29. Okt 2003 10:43


ShellExecute,WinExec ändern aktuelle Verzeichnis
 
Hallo und Guten... :duck:

ich habe ein Programm, welches von CD entscheidet ob ein anderes
Programm installiert oder schon auf dem Rechner ist. Dem entsprechend
startet es das Programm oder den Setup.

Bei jedem Start des Programmes(welches auf der Festplatte installiert
ist) macht es einen GetDir
dummerweise steht da, wenn ich ShellExecute,WinExec nehme das
CD-Verzeichnis und nicht das Programmverzeichnis des Festplatten

Es liegt also nur noch an dem aktuellen Verzeichnis kann mir jem
helfen *fleh

Dank an alle !!

Schind :angle:

MathiasSimmack 29. Okt 2003 10:49

Re: ShellExecute,WinExec ändern aktuelle Verzeichnis
 
Und dein Problem ist jetzt ... ? :?

schind1978 29. Okt 2003 10:55

Re: ShellExecute,WinExec ändern aktuelle Verzeichnis
 
ich brauche eine Möglichkeit, wie ich aus einem Programm P1 ein anderes P2 starten kann.
und das aktuelle Verzeichnis muss das von P2 sein und nicht wie bei Shellexec dass des Aufrufenden (P1).
Bei driektem Start wird ja auch in das Verzeichnis von P2 gewechselt ..


schind

MathiasSimmack 29. Okt 2003 11:00

Re: ShellExecute,WinExec ändern aktuelle Verzeichnis
 
Das Problem liegt also daran, dass dein Programm mit "GetDir" das aktuelle Arbeitsverzeichnis ermittelt? Dann solltest du entweder vor dem Start des Programms das aktuelle Verzeichnis wechseln (SetCurrentDir), oder du probierst, ob der entsprechende Parameter von ShellExecute schon ausreicht:
Code:
HINSTANCE ShellExecute(
    HWND hwnd,
    LPCTSTR lpOperation,
    LPCTSTR lpFile,
    LPCTSTR lpParameters,
    [b]LPCTSTR lpDirectory[/b],  [i]// Arbeitsverzeichnis[/i]
    INT nShowCmd
);

Sharky 29. Okt 2003 11:06

Re: ShellExecute,WinExec ändern aktuelle Verzeichnis
 
Zitat:

Zitat von schind1978
....und das aktuelle Verzeichnis muss das von P2 sein und nicht wie bei Shellexec dass des Aufrufenden (P1).
....

Hai schnidl1978,

willkommen im Delphi-Praxis Forum. Wenn ich Dich richtig verstehe möchtest Du das aktuelle Arbeitsverzeichniss (welches ja mit GetDir ermittelt wir) setzen.

Und das gegenteil von GetDir ist..... ChDir oder SetCurrentDir


[EDIT]Mathias war mal wieder schneller[/EDIT]

MathiasSimmack 29. Okt 2003 11:21

Re: ShellExecute,WinExec ändern aktuelle Verzeichnis
 
Zitat:

Zitat von Sharky
Mathias war mal wieder schneller

Mag ja sein, aber ich kann lesen ... und du solltest dich lieber entschuldigen:
Zitat:

Hai schnidl1978,
:mrgreen:

franz77 29. Okt 2003 12:21

Re: ShellExecute,WinExec ändern aktuelle Verzeichnis
 
Hallo schind1978!

Zitat:

ich brauche eine Möglichkeit, wie ich aus einem Programm P1 ein anderes P2 starten kann.
und das aktuelle Verzeichnis muss das von P2 sein und nicht wie bei Shellexec dass des Aufrufenden (P1).
Bei driektem Start wird ja auch in das Verzeichnis von P2 gewechselt ..
Ich verstehe irgendwie immer noch nicht was genau damit gemeint ist.
Wenn dein Problem das ist, dass bei P2 bei einem Start durch ShellExec, das aktuelle Verzeichnis in das von P1 zeigt, dann könntest Du mit ExtractFilePath (ParamStr (0)) den Pfad der eigenen EXE ermitteln und ihn dann mit SetDir explizit setzen.

ExtractFilePath (String): String ist in der Unit sysutils und ParamStr (int) in der unit system definiert.

Konnte ich Dir helfen?

Gruss, Franz.

schind1978 29. Okt 2003 12:38

Re: ShellExecute,WinExec ändern aktuelle Verzeichnis
 
Genau that's !!! :mrgreen: :mrgreen: :mrgreen: :-D :hello:

Danke an alle für eure Hilfe !!

Hier ist ja im Vergleich zur Newsgroup wirklich was los ... :dp:

schind1978 29. Okt 2003 12:40

Re: ShellExecute,WinExec ändern aktuelle Verzeichnis
 
Achja, noch kurz ne Frage,

ich soll hier irgendwo meine Frage als beantwortet kennzeichnen, wo mach ich das?


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