Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Shell Execute verallgemeinern (https://www.delphipraxis.net/167236-shell-execute-verallgemeinern.html)

resyiii 19. Mär 2012 16:18

Shell Execute verallgemeinern
 
Kann man mit ShellExecute auch auf beliebige Laufwerkbuchstabn zugreifen?

meins ist jetzt auf Laufwerk I programmert, weil der USB stick I bei mir heißt.
Wenn ich jetzt aber Morgen den Stick abgebe und meine Lehrerin ihn reinsteckt und er beispielsweise H ist,
bricht mein ganzes Gerüst doch zusammen,
irgendwelche Ideen oder Tipps?

mkinzler 19. Mär 2012 16:26

AW: Shell Execute verallgemeinern
 
Einfach keine festen Pfade verwenden. Z.B. Pfad relativ zum Pfad zur Exe ( Param 0)

resyiii 19. Mär 2012 16:33

AW: Shell Execute verallgemeinern
 
und jetzt nochmal ne erklärung für dumme?! :wink:

ne jetzt im ernst, versteh nur bahnhof

SirThornberry 19. Mär 2012 16:36

AW: Shell Execute verallgemeinern
 
Das Problem ist nicht Shellexecute sondern wie du ShellExecute aufrufst.
Wenn du als Programm "c:\irgendwas.exe" angibst wird natürlich auf "c:\" nach der Datei gesucht.

Woher weißt du wo die Datei wirklich liegt? Wenn du dir diese Frage selbst beantworten kannst, kannst du auch das "c:\irgendwas.exe" durch XY+"irgendwas.exe" ersetzen.

DeddyH 19. Mär 2012 16:36

AW: Shell Execute verallgemeinern
 
In ParamStr(0) steht immer der komplette Pfad zum eigenen Programm. Das kann man sich zunütze machen.

mkinzler 19. Mär 2012 16:36

AW: Shell Execute verallgemeinern
 
Die Exe bekommt sich selber inkl. Pfad als 0. Parameter
http://www.delphibasics.co.uk/RTL.asp?Name=ParamStr
Aus diesem Pfad kannst du per ExtractFilePath() den Pfad, in der die Exe liest extrahieren.

Popov 19. Mär 2012 17:42

AW: Shell Execute verallgemeinern
 
Zitat:

Zitat von resyiii (Beitrag 1157398)
und jetzt nochmal ne erklärung für dumme?! :wink:

ne jetzt im ernst, versteh nur bahnhof

Delphi-Quellcode:
var
  ProgVerzeichnis,
  ProgPfad: String;
begin
  //Pfad der Anwendung, z. B. c:\meinprogramm\programm.exe
  ProgPfad := ParamStr(0);

  //Pfad ohne Anwendung, z. B. c:\meinprogramm\ mit Backslash am Ende
  ProgVerzeichnis := ExtractFilePath(ParamStr(0));
end;


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