AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit ShellExecute

Ein Thema von trashcandesign · begonnen am 14. Nov 2007 · letzter Beitrag vom 21. Nov 2007
Antwort Antwort
Seite 1 von 2  1 2      
trashcandesign

Registriert seit: 21. Feb 2006
Ort: Mühlhausen
187 Beiträge
 
Delphi XE2 Professional
 
#1

Problem mit ShellExecute

  Alt 14. Nov 2007, 15:29
Hi,

ich hab das ein kleines Problem mit ShellExecute:

Über die Funktion
ShellExecute(Handle, 'open', PAnsiChar(sProgramm), PAnsiChar(sDatei), PAnsiChar(sPfad), SW_SHOWNORMAL) möchte ich die Datei mit Acrobat, Word, Excel oder sonst was öffnen.
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?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Problem mit ShellExecute

  Alt 14. Nov 2007, 15:30
Anführungszeichen (") am Anfang und Ende ergänzen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
trashcandesign

Registriert seit: 21. Feb 2006
Ort: Mühlhausen
187 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Problem mit ShellExecute

  Alt 15. Nov 2007, 07:39
Mit

ShellExecute(Handle, 'open', PAnsiChar(sProgramm), PAnsiChar(''''+sDatei+''''), PAnsiChar(''''+sPfad+''''), SW_SHOWNORMAL) hab ich das ganze auch schon versucht -> klappt nicht.

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.
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Problem mit ShellExecute

  Alt 15. Nov 2007, 07:56
Versuch es mal mit
...(QuotedString(sDatei))...
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Problem mit ShellExecute

  Alt 15. Nov 2007, 08:12
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);
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
trashcandesign

Registriert seit: 21. Feb 2006
Ort: Mühlhausen
187 Beiträge
 
Delphi XE2 Professional
 
#6

Re: Problem mit ShellExecute

  Alt 15. Nov 2007, 08:41
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?
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: Problem mit ShellExecute

  Alt 15. Nov 2007, 08:47
Zitat von trashcandesign:
Sorry, ich steh da aufm Schlauch, aber was soll mir GetShortPathName bringen?
Damit bekommst Du den Dateinamen, wie er in "8+3"-Notation aussieht.

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".
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
trashcandesign

Registriert seit: 21. Feb 2006
Ort: Mühlhausen
187 Beiträge
 
Delphi XE2 Professional
 
#8

Re: Problem mit ShellExecute

  Alt 15. Nov 2007, 08:50
Ich hab das jetzt mal mit

GetShortPathName(PChar(Datei), ShortFileName, MAX_PATH + 1); versucht, aber ShortFileName gibt mir dann nichts zurück?!


Mit "dir /x" bekomm ich auch nur 'a b.xls' angezeigt.
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#9

Re: Problem mit ShellExecute

  Alt 15. Nov 2007, 08:55
Also bei mir sieht das so aus wie auf den Bildern.
Miniaturansicht angehängter Grafiken
explorer_990.jpg   dir_125.jpg  
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
trashcandesign

Registriert seit: 21. Feb 2006
Ort: Mühlhausen
187 Beiträge
 
Delphi XE2 Professional
 
#10

Re: Problem mit ShellExecute

  Alt 15. Nov 2007, 09:15
Autsch, hab in der falschen Spalte geschaut.
Sorry.


Werd ich auch gleich nochmal ausprobieren.

was ich jetzt noch versucht habe ist

ShellExecute(Handle, 'open', PAnisChar(Datei), Pchar(''), PAnsiChar(Datei), SW_SHOWNORMAL) 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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:32 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