![]() |
Problem mit ShellExecute
Hi,
ich hab das ein kleines Problem mit ShellExecute: Über die Funktion
Delphi-Quellcode:
möchte ich die Datei mit Acrobat, Word, Excel oder sonst was öffnen.
ShellExecute(Handle, 'open', PAnsiChar(sProgramm), PAnsiChar(sDatei), PAnsiChar(sPfad), SW_SHOWNORMAL)
Das funktioniert auch ganz schön, aber sobal in der variablen sDatei, oder sPfad ein Leerzeichen vorkommt kann zb. Word die Datei nicht öffnen. Wie kann ich die Strings maskieren, dass das funktioniert? |
Re: Problem mit ShellExecute
Anführungszeichen (") am Anfang und Ende ergänzen.
|
Re: Problem mit ShellExecute
Mit
Delphi-Quellcode:
hab ich das ganze auch schon versucht -> klappt nicht.
ShellExecute(Handle, 'open', PAnsiChar(sProgramm), PAnsiChar(''''+sDatei+''''), PAnsiChar(''''+sPfad+''''), SW_SHOWNORMAL)
Excel zeigt mir wenigstens an, was er bekommt und auch mit den Anführungsstrichen will er mehrere Dateien öffnen. Sprich wenn ich eigentlich die Datei "A B.xls" öffnen will versucht Excel A.xls und B.xls zu öffnen. |
Re: Problem mit ShellExecute
Versuch es mal mit
Delphi-Quellcode:
...(QuotedString(sDatei))...
|
Re: Problem mit ShellExecute
Hallo,
hast du es mal mit GetShortPathName versucht?
Delphi-Quellcode:
var
ShortFileName: array [0..MAX_PATH + 1] of Char; begin GetShortPathName(PChar('...'), ShortFileName, MAX_PATH + 1); |
Re: Problem mit ShellExecute
Hi,
Mit QuotedStr hat es auch nicht funktioniert, Excel scheint immer zwei Dateien öffnen zu wollen. Sorry, ich steh da aufm Schlauch, aber was soll mir GetShortPathName bringen? |
Re: Problem mit ShellExecute
Zitat:
z.B. "Ein langer Dateiname.txt" => "EINLAN~1.TXT" Dieser Name ist eindeutig und kann bestimmt auch von dem bescheuerten Excel geöffnet werden. Mach einfach mal eine DOS-Konsole auf. Gehe in das Verzeichnis mit der jeweiligen Datei. (cd <PFAD>) Dann gibst Du ein "DIR /X". |
Re: Problem mit ShellExecute
Ich hab das jetzt mal mit
Delphi-Quellcode:
versucht, aber ShortFileName gibt mir dann nichts zurück?!
GetShortPathName(PChar(Datei), ShortFileName, MAX_PATH + 1);
Mit "dir /x" bekomm ich auch nur 'a b.xls' angezeigt. |
Re: Problem mit ShellExecute
Liste der Anhänge anzeigen (Anzahl: 2)
Also bei mir sieht das so aus wie auf den Bildern.
|
Re: Problem mit ShellExecute
Autsch, hab in der falschen Spalte geschaut.
Sorry. Werd ich auch gleich nochmal ausprobieren. was ich jetzt noch versucht habe ist
Delphi-Quellcode:
das funktioniert soweit, aber ich möchte ja die Datei mit einem bestimmten Programm öffnen und nicht nur mit dem Windows-Standard-Programm für den Dateitypen.
ShellExecute(Handle, 'open', PAnisChar(Datei), Pchar(''), PAnsiChar(Datei), SW_SHOWNORMAL)
|
Re: Problem mit ShellExecute
Dann öffne das Programm und übergeb die Datei als Parameter.
P.S.:PAnisChar... super Vertipper :D |
Re: Problem mit ShellExecute
Das versuch ich doch die ganze zeit, aber es klappt ja nicht so, wie ich mir das vorstell!
Nachdem ich jetzt endlich gerafft habe, dass ShortFileName ein Array ist und ich das nicht einfach so nehmen kann, sondern mir einen String zusammen bauen muss funktioniert jetzt sogar die Parameterübergabe. Danke an alle, es sieht so aus, als ob es endlich funktioniert. |
Re: Problem mit ShellExecute
Hallo,
da hab ich doch gleich mal noch ne Frage. Ich möchte eine TXT-Datei (csv) per Excel öffnen. Natürlich ist Excel nicht das Standard-Programm. Findet ShellExecute das Excel immer ? Es weiss doch gar nicht, wo die Excel.Exe steht. Steht das irgendwie im Pfad, ich sehe hier nichts ? Per "Start-Ausführen" geht es ja. Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:19 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