Einzelnen Beitrag anzeigen

hathor
(Gast)

n/a Beiträge
 
#8

AW: Problem mit ShellExecute und .pdf Dateien

  Alt 27. Jan 2014, 13:06
Es gibt mehrere Möglichkeiten, ein PDF zu öffnen:

Mit der Übergabe des Parameters open wird die Anwendung gestartet,
die unter shell/open/command bzw. shell/read/command steht.

Beispiel:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Explorer\FileExts\.pdf\UserChoice]
"ProgId"="FoxitReader.Document"

Mit nil wird die Standardanwendung gestartet.
Diese können identisch sein.

Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var fn : String;
begin
fn:=ExtractFilePath(ParamStr(0)) +'test-1.pdf';
ShellExecute(0,nil,PChar(fn),NIL,NIL,SW_SHOWNORMAL);
end;

procedure TForm1.Button4Click(Sender: TObject);
var fn : String;
begin
fn:=ExtractFilePath(ParamStr(0)) +'test-1.pdf';
ShellExecute(0,PChar('OPEN'),PChar(fn),NIL,NIL,SW_SHOWNORMAL);
end;

procedure TForm1.Button5Click(Sender: TObject);
var fn : String;
begin
fn:=ExtractFilePath(ParamStr(0)) +'test-1.pdf';
webbrowser1.Navigate(fn);
end;

procedure TForm1.Button6Click(Sender: TObject);
var fn : String;
begin
fn:=ExtractFilePath(ParamStr(0)) +'test-1.pdf';
ShellExecute(0,PChar('Foxit Reader.exe'),PChar(fn),NIL,NIL,SW_SHOWNORMAL);
end;
//AcroRd32.exe
procedure TForm1.Button7Click(Sender: TObject);
var fn : String;
begin
fn:=ExtractFilePath(ParamStr(0)) +'test-1.pdf';
ShellExecute(0, 'open','acrord32', PChar(fn),NIL,SW_SHOWNORMAL);
end;

procedure TForm1.Button9Click(Sender: TObject); //PRINT
var fn : String;
begin
fn:=ExtractFilePath(ParamStr(0)) +'test-1.pdf';
ShellExecute(0, 'open','acrord32', PChar('/p /h ' + fn), nil, SW_HIDE);
end;
PARAMETER

Open a PDF file: AcroRd32.exe PdfFile
Open a PDF file in a new instance of Adobe Reader: AcroRd32.exe /N PdfFile
Open a PDF file at page 7: AcroRd32.exe /A "page=7=OpenActions" PdfFile
Open a PDF file with navigation pane active, zoom out to 50%, and search for and highlight the word "batch":
AcroRd32.exe /A "zoom=50&navpanes=1=OpenActions&search=batch" PdfFile
Print a PDF file with dialog: AcroRd32.exe /P PdfFile
Print a PDF file silently: AcroRd32.exe /N /T PdfFile PrinterName [ PrinterDriver [ PrinterPort ] ]

Geändert von hathor (27. Jan 2014 um 19:52 Uhr)
  Mit Zitat antworten Zitat