Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   ShellExcecute Formulierung (https://www.delphipraxis.net/209886-shellexcecute-formulierung.html)

geldis 4. Feb 2022 14:49

AW: ShellExcecute Formulierung
 
@delphi.narium

War Zufall. Ist mir eben vor die Füsse gefallen.
Dein Vorschlag funktioniert bestens, vielen Dank. :thumb:

Leerzeichen im Dateinamen sind so auch kein Problem.
Auch an alle anderen natürlich. :-D

geldis

Ups, eines noch: der Slash am Ende vom OutPath passt ihm allerdings gar nicht.

Delphi.Narium 4. Feb 2022 15:09

AW: ShellExcecute Formulierung
 
Wem passt das nicht?

Dem? -> polon.exe

Oder dem? -> ShellExecute

Bei ShellExecute würd' mich das eher wundern.
Gibt es denn OutPath?

Delphi-Quellcode:
WorkFile := '"C:\Users\Geldis\Projekt 7\PIC\polon.exe"';
OutPath := 'C:\Users\Geldis\Projekt 7\OUT\';
if not ForceDirectories(OutPath) then
begin
  Fehlermeldung, dass der Ausgabepfad nicht erstellt werden kann.
end else
begin
  InPath := 'C:\Users\Geldis\Projekt 7\IN\';
  if not ForceDirectories(InPath) then
  begin
    Fehlermeldung, dass der Eingabepfad nicht erstellt werden kann.
  end else
    InFile := Format('"%s%s"',[InPath,'sample.jpg']);
    if not FileExists(InFile) then
    begin
      Fehlermeldung, dass es das InFile nicht gibt.
    end else
    begin
      // Wenn polon.exe ein Problem mit dem abschließenden \ hat so:
      Params := Format('%s -w 256 -h 256 -ft tga -o "%s"',[InFile,ExcludeTrailingPathDelimiter(OutPath)]);
      // ansonsten so:
      Params := Format('%s -w 256 -h 256 -ft tga -o "%s"',[InFile,OutPath]);
      if ShellExecute(0, 'open', PChar(WorkFile), PChar(Params), nil, SW_HIDE) <= 32 then
      begin
        Fehlerbehandlung, Fehlermeldung ...
      end;
    end;
  end;
end;
(ungetestet hingedaddelt)

Delphi.Narium 4. Feb 2022 15:20

AW: ShellExcecute Formulierung
 
Achso:

ShellExecute hat da doch noch so einen Parameter, der momentan Nil ist.

Heißt irgendwie "Directory"!

Da könnte man ja dann ggfls. den OutPath angeben. Keine Ahnung wie polon.exe arbeitet.

Wo schreibt's hin, wenn kein OutPath angegeben ist?
Ins aktuelle Verzeichnis, das wäre dann das im Directoryparameter von ShellExecute.
In dem Fall könnte dann eventuell die Angabe des OutPath in den Parametern entfallen.

Ist jetzt alles nur Spekulation, aber eventuell hilft's ja irgendwie weiter.

Uwe Raabe 4. Feb 2022 15:36

AW: ShellExcecute Formulierung
 
Zitat:

Zitat von geldis (Beitrag 1501712)
Ups, eines noch: der Slash am Ende vom OutPath passt ihm allerdings gar nicht.

Das liegt dann aber eher am interpretierenden Programm (polon.exe?).

himitsu 4. Feb 2022 19:25

AW: ShellExcecute Formulierung
 
Und es kommt drauf an, wo der Ausgabepfad/Arbeitsverzeichnis liegt.

Nicht Jeder kann bei Allem mit Netzwerkpfaden umgehen, wie z.B. die Console nicht.


So müßte man dann sicher sein, dass sowas dann nie vorkommen kann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:50 Uhr.
Seite 2 von 2     12   

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