Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   ShellExecute mehrere Dateien als Parameter übergeben (https://www.delphipraxis.net/161779-shellexecute-mehrere-dateien-als-parameter-uebergeben.html)

Chris.R 20. Jul 2011 15:27

ShellExecute mehrere Dateien als Parameter übergeben
 
Hallo alle zusammen,

ich hab ein kleines Problem, für das ich bisher keine Lösung gefunden hab.
Und zwar will ich ShellExecute aufrufen und mehrere Dateien auf einmal als Parameter übergeben.

Falls hier irgendjemand eine Idee hat, dann immer her damit...

Ciao Chris

himitsu 20. Jul 2011 16:13

AW: ShellExecute mehrere Dateien als Parameter übergeben
 
Das ist wie überall, mit den Parametern, wenn ein Parameter z.B. Leerzeichen enthällt, dann muß er mit " maskiert werden.

Code:
"param 1" param2 "param 3" "param 4"
Also jeweils " davor und dahinter.

Luckie 20. Jul 2011 16:20

AW: ShellExecute mehrere Dateien als Parameter übergeben
 
Nimmt denn das Programm überhaupt mehrere Dateien als Parameter an? Wenn nicht, wirst du da nichts machen können.

Bjoerk 20. Jul 2011 16:22

AW: ShellExecute mehrere Dateien als Parameter übergeben
 
Delphi-Quellcode:
// Habe ich in meiner Sammlung, verwende ich aber nicht.
// Probier' mal, ob's geht.

// Für ParamStr die einzelnen Parameter vermutlich in "QuoteChars".
// Ob das überhaupt geht, hängt vom auzuführenden Programm ab.
// Es gibt Programme, die das nicht mögen, die Delphi IDE/ BDS zum Beispiel.

procedure ExecuteWinFile(const FileName, ParamStr: string);
var
  sei: TShellExecuteInfo;
begin
  FillChar(sei, SizeOf(sei), 0);
  sei.cbSize:= SizeOf(sei);
  sei.lpFile:= PChar(FileName);
  sei.lpParameters:= PChar(ParamStr);
  // sei.lpVerb:= 'runas';
  sei.lpDirectory:= PChar(ExtractFilePath(FileName));
  sei.Wnd:= Application.Handle;
  sei.nShow:= SW_SHOWNORMAL;
  if not ShellExecuteEx (@sei) then RaiseLastOsError;
end;

himitsu 20. Jul 2011 21:07

AW: ShellExecute mehrere Dateien als Parameter übergeben
 
@Bjoerk: Bei dem, was du MSDN-Library durchsuchenShellExecuteEx mitgibst ist nichts besonderes dabei (abgesehn von dem auskommentierten Runas, aber auch das sollte kein Problem darstellen).

Jedenfalls kann man sich die Arbeit auch schwerer machen, als es ein muß,
oder man nimmt hier ganz einfach das kleinere/einfachere MSDN-Library durchsuchenShellExecute.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:54 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz