Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   ShellExecute - HTML Datei mit Word öffnen (https://www.delphipraxis.net/164415-shellexecute-html-datei-mit-word-oeffnen.html)

Jerry 11. Nov 2011 09:32

ShellExecute - HTML Datei mit Word öffnen
 
Hallo zusammen

Weiss jemand wie man eine HTML - Datei mit Word öffnet über Shellexecute?

Momentan wird mit diesem Befehl das File mit dem IE geöffnet.

Delphi-Quellcode:
ShellExecute(Self.Handle,'open',pchar(edt_SMHTMVorlage.Text),0,0,SW_NORMAL);
Oder sollte ich das auf eine andere Art und Weise machen?

Danke!

DeddyH 11. Nov 2011 09:43

AW: ShellExecute - HTML Datei mit Word öffnen
 
Rufe nicht die HTML-Datei auf, sondern winword.exe, wobei Du die Datei als Parameter übergibst.

Jerry 11. Nov 2011 09:53

AW: ShellExecute - HTML Datei mit Word öffnen
 
Danke DeddyH ! :-)

himitsu 11. Nov 2011 10:05

AW: ShellExecute - HTML Datei mit Word öffnen
 
"open" ruft ja da Programm auf, welches mit OPEN verbunden ist, bzw. ohne dieses Attrigut wird auch einfach nur das Programm geöffnet, welches standardmääig für das Öffnen angegeben wurde.

Du könntest also natürlich auch gerne deinen Code verwenden, müßtest dann aber das verknüpfte Programm auf's Word abändern. :stupid:

Gollum 11. Nov 2011 10:12

AW: ShellExecute - HTML Datei mit Word öffnen
 
Hallo,
wenn es denn unbedingt mit WinWord sein muss:
Delphi-Quellcode:
ShellExecute(0, 'open', 'winword.exe', PChar(edt_SMHTMVorlage.Text), nil, SW_SHOW);

DeddyH 11. Nov 2011 10:14

AW: ShellExecute - HTML Datei mit Word öffnen
 
Also #2 in Code formuliert :)

Gollum 11. Nov 2011 10:16

AW: ShellExecute - HTML Datei mit Word öffnen
 
Zitat:

Zitat von DeddyH (Beitrag 1135682)
Also #2 in Code formuliert :)

Uups, stimmt:oops: Habe ich überlesen.

himitsu 11. Nov 2011 10:29

AW: ShellExecute - HTML Datei mit Word öffnen
 
Zitat:

Zitat von DeddyH (Beitrag 1135682)
Also #2 in Code formuliert :)

Wenn die winword.exe sich in einem bekannten Suchpfad befindet ... ansonsten sollte man die Pfadangabe nicht vergessen.

DeddyH 11. Nov 2011 10:32

AW: ShellExecute - HTML Datei mit Word öffnen
 
Also kompletten Pfad ermitteln, in einer Variablen ablegen und diese (ggf. nach PChar gecastet) als Parameter übergeben. Haben wir das an sich triviale Problem nun hinreichend durchgekaut?

Jerry 11. Nov 2011 10:37

AW: ShellExecute - HTML Datei mit Word öffnen
 
da wird ja rege geantwortet... :-)

Jetzt ist noch ein Problem aufgetaucht. Und zwar Folgendes:

Die HTML Datei befindet sich in einem Pfand der z.B: so lautet: r:\support\vorlagen und Formulare\support.html

zu beachten die Leerschläge...

Jetzt kann die Paraemterangabe der Datei
Delphi-Quellcode:
ShellExecute(Self.Handle,'open','winword.exe',Pchar(edt_SMHTMVorlage.Text),0,SW_NORMAL);
den Pfad nicht öffen. Der Leerschlag stört...
Die Meldung von Word lautet:
'R:\support\vorlagen' kann nicht gefunden werden. Überprüfen sie die Rechtsschreibung, oder verwenden sie einen anderen Pfad.
Ich kann leider nicht einfach so den Pfad ändern, da andere programme in diese File-Strucktur eingreifen.

Gibts da noch einen Tipp gratis dazu? grins...

Gruss Jerry

DeddyH 11. Nov 2011 10:45

AW: ShellExecute - HTML Datei mit Word öffnen
 
Ja, schließe den Dateinamen in Anführungszeichen ein oder ermittle mit GetShortPathName den kurzen Dateinamen und übergib den dann.

[edit] So hab ich das neulich gemacht:
Delphi-Quellcode:
function EncloseInQuotes(const s: string): string;
const
  QUOTE = '"';
begin
  Result := s;
  if Length(Result) > 0 then
    begin
      if Result[1] <> QUOTE then
        Result := QUOTE + Result;
      if Result[Length(Result)] <> QUOTE then
        Result := Result + QUOTE;
    end;
end;

...

ShellExecute(0, 'open', PChar(Pfad_zu_WinWord), PChar(EncloseInQuotes(Datei)), nil, SW_SHOW);
[/edit]

Jerry 11. Nov 2011 11:13

AW: ShellExecute - HTML Datei mit Word öffnen
 
Nochmals danke an DeddyH !!! :-) Funzt 1a.

Grüsse Jerry

DeddyH 11. Nov 2011 11:21

AW: ShellExecute - HTML Datei mit Word öffnen
 
Freut mich :)

Luckie 11. Nov 2011 13:34

AW: ShellExecute - HTML Datei mit Word öffnen
 
Zitat:

Zitat von DeddyH (Beitrag 1135689)
Ja, schließe den Dateinamen in Anführungszeichen ein oder ermittle mit GetShortPathName den kurzen Dateinamen und übergib den dann.

Das ist aber gefährlich. Unter NTFS kann man die zusätzliche Erzeugung von kurzen Dateinamen im Dateisystem deaktivieren. Leider habe ich im SDK keinen weiteren Hinweise diesbezüglich gefunden.

DeddyH 11. Nov 2011 13:44

AW: ShellExecute - HTML Datei mit Word öffnen
 
Ich habe auf Grund dieses Hinweises einmal gestöbert und bin hier gelandet:
Zitat:

Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP: 8.3 aliasing cannot be disabled for specified volumes until Windows 7 and Windows Server 2008 R2.
Aber nicht zuletzt aus Faulheitsgründen verwendet mein Beispielcode von oben ja die Lösung mit Anführungszeichen ;)

Luckie 11. Nov 2011 13:48

AW: ShellExecute - HTML Datei mit Word öffnen
 
Zitat:

Zitat von DeddyH (Beitrag 1135717)
Aber nicht zuletzt aus Faulheitsgründen verwendet mein Beispielcode von oben ja die Lösung mit Anführungszeichen ;)

Das ist aber immer noch sehr fleißig. Wie wäre es mit QuoteStr? ;)

DeddyH 11. Nov 2011 13:54

AW: ShellExecute - HTML Datei mit Word öffnen
 
Weil QuotedStr nicht zum Ziel führt. "C:\Programme\Verzeichnis mit Leerzeichen" ist ja nicht dasselbe wie 'C:\Programme\Verzeichnis mit Leerzeichen'.

[edit] OK, bei AnsiQuotedStr kann man das Zeichen angeben. Aber was soll' s, so geht' s ja auch. [/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:01 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