![]() |
ShellExecute Problem mit zweitem Parameter
Moin zusammen.
Ich habe derzeit einige Probleme mit ShellExexcute : 1)
Code:
obige Prozedur läuft ohne Probleme, Datei wird mit der dazugehörigen Anwendung geöffnet.
procedure TfrmMain.OpenMedia(Media: String);
var n : Integer; sFile : String; err : Integer; begin err := 63; err := ShellExecute(Handle, 'open', PChar(Media), nil, nil, SW_SHOWNORMAL); if err <= 32 then ShowMessage(ShellExecuteErrMsg(err)); end; 2)
Code:
Media :
procedure TfrmMain.OpenMediaWithApplication(Media, Application: String);
var n : Integer; sFile : String; err : Integer; begin err := 63; err := ShellExecute(Handle, 'open', PChar(Application), PChar(Media), nil, SW_SHOWNORMAL); if err <= 32 then ShowMessage(ShellExecuteErrMsg(err)); ShowMessage(IntToStr(err)); // <--- Rückgabewert ist 42 end; M:\DB_MED\MediaFiles\Video\Incognito_JapanTour2012 .avi übergebe ich die Anwendung, mit der die Datei (Media) geöffnet werden soll im ersten Parameter und den Dateinamen im zweiten Parameter, bekomm' ich einen Rückgabewert von 42 (kein Fehler), der Dateiname des zweiten Parameters scheint aber bei der Anwendung nicht anzukommen: bsp. MediaPlayer oder VLC MediaPlayer --> beide können die Datei nicht öffnen, lt. Fehlermeldung weist die Datei eine unbekannte Fehlermeldung auf (ist aber *.avi, mehrfach kontrolliert). Media ist die gleiche Datei wie auch in der ersten Prozedur benutzt. Weiß jemand Rat ? BS : Win10 und Win7, beide 64Bit, gleiches Ergebnis. |
AW: ShellExecute Problem mit zweitem Parameter
Hallo,
ich hatte auch mal ein Problem mit ShellExexcute() wo bestimmte Dateien nicht aufgerufen wurden. Nachdem ich den Dateinamen in Anführungszeichen gesetzt hatte habe ich das Problem nicht mehr.
Delphi-Quellcode:
Ob das jetzt dein Problem löst vermag ich nicht zu sagen, da ich auch nicht weiß was genau sich hinter
PChar('"' + Media + '"')
Zitat:
|
AW: ShellExecute Problem mit zweitem Parameter
@ juergen,
danke, das war's . . . vielleicht weiß ja noch jemand den Hintergrund . . . |
AW: ShellExecute Problem mit zweitem Parameter
Parameter werden durch Leerzeichen getrennt. Enthält ein Dateiname Leerzeichen, so wird er wie entsprechend viele Parameter behandelt.
Dateinamen mit Leerzeichen muss man in Hochkommata setzen. Das ist eigentlich der Fall, seit dem Windows bei Dateinamen mehr als 8.3 zulässt. (War das Windows 95 bzw. Windows NT?) |
AW: ShellExecute Problem mit zweitem Parameter
... daran hab' ich auch schon gedacht, und Leerzeichen durch Unterstriche ersetzt, das Ergebnis war allerdings das Gleiche,
und Unterstriche sind meines Wissens in Dateinamen erlaubt . . . |
AW: ShellExecute Problem mit zweitem Parameter
Zeig' doch bitte mal den konkreten Inhalt von Media, so kann man doch nur spekulieren.
|
AW: ShellExecute Problem mit zweitem Parameter
Media-Inhalt (ein Beispiel) im ersten Post
|
AW: ShellExecute Problem mit zweitem Parameter
In
M:\DB_MED\MediaFiles\Video\Incognito_JapanTour2012 .avi ist ein SPACE vorhanden. |
AW: ShellExecute Problem mit zweitem Parameter
Zitat:
|
AW: ShellExecute Problem mit zweitem Parameter
Hmm..
Zitat:
Dann ist der Fehler gefunden... ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:48 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