Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi pdf wird mit shellexecute nicht angezeigt (https://www.delphipraxis.net/136922-pdf-wird-mit-shellexecute-nicht-angezeigt.html)

Jerry 10. Jul 2009 10:53


pdf wird mit shellexecute nicht angezeigt
 
Hallo zusammen

Seit kurzem kann ich an meinem PC aus Delphi keine PDF's mehr anschauen.
Folgender Code:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ShellAPI;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
    ShellExecute(handle, 'open', 'c:\temp\test.pdf', nil, nil, sw_show);
end;

end.
An einem anderen PC funzt es einwandfrei. Was könnte die Ursache sein?
Danke für Tipps.

mkinzler 10. Jul 2009 10:54

Re: pdf wird mit shellexecute nicht angezeigt
 
Ist ein PDF-Viewer installiert? Und ist der auch mit dem Dateityp verknüpft?

Jerry 10. Jul 2009 10:57

Re: pdf wird mit shellexecute nicht angezeigt
 
jep adobe acrobat reader 8, bei doppelklick wird die datei angezeigt.

mkinzler 10. Jul 2009 10:59

Re: pdf wird mit shellexecute nicht angezeigt
 
Was sagt der Rückgabewert von ShellExecute?

Jerry 10. Jul 2009 11:04

Re: pdf wird mit shellexecute nicht angezeigt
 
sorry, wie finde ich den rückgabewert?

mkinzler 10. Jul 2009 11:06

Re: pdf wird mit shellexecute nicht angezeigt
 
Du liest ihn ja noch nicht aus:
Delphi-Quellcode:
<Rückgabe> := ShellExecute(handle, 'open', 'c:\temp\test.pdf', nil, nil, sw_show);
http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx

Jerry 10. Jul 2009 11:12

Re: pdf wird mit shellexecute nicht angezeigt
 
der Rückgabewert ist 31.

mkinzler 10. Jul 2009 11:22

Re: pdf wird mit shellexecute nicht angezeigt
 
Dann lief was schief, den keine Fehler bedeutet einen Rückgabewert > 32
31 ist SE_ERR_NOASSOC also das die Verknüpfung auf die Endung fehlt.

DeddyH 10. Jul 2009 11:32

Re: pdf wird mit shellexecute nicht angezeigt
 
Das könnte man ja z.B. mit MSDN-Library durchsuchenFindExecutable überprüfen.

Jerry 10. Jul 2009 12:30

Re: pdf wird mit shellexecute nicht angezeigt
 
Liste der Anhänge anzeigen (Anzahl: 1)
Super, vielen Dank für die Antwort!

Es war ganz komisch. Die Windows-Datei Verknüpfung war da, aber die Open-Aktion war nicht definiert. Ich habe diese an einem anderen PC abgeschaut, bei mir eingetragen und es funzt wieder!

Vielen Dank!


Frage: Wo findet man diese Fehlermeldung:

31 ist SE_ERR_NOASSOC

Für diesen "Gratis-Tipp" wäre ich noch dankbar!

Der.Kaktus 10. Jul 2009 12:44

Re: pdf wird mit shellexecute nicht angezeigt
 
Hallo, diese Konstanten findest Du in der "ShellApi.pas" im Unterverzeichnis Source/rtl/win

DeddyH 10. Jul 2009 12:45

Re: pdf wird mit shellexecute nicht angezeigt
 
Schau mal in die Unit ShellAPI ;)
Zitat:

Delphi-Quellcode:
{ ShellExecute() and ShellExecuteEx() error codes }
const
{ regular WinExec() codes }
  {$EXTERNALSYM SE_ERR_FNF}
  SE_ERR_FNF             = 2;      { file not found }
  {$EXTERNALSYM SE_ERR_PNF}
  SE_ERR_PNF             = 3;      { path not found }
  {$EXTERNALSYM SE_ERR_ACCESSDENIED}
  SE_ERR_ACCESSDENIED    = 5;      { access denied }
  {$EXTERNALSYM SE_ERR_OOM}
  SE_ERR_OOM             = 8;      { out of memory }
  {$EXTERNALSYM SE_ERR_DLLNOTFOUND}
  SE_ERR_DLLNOTFOUND     = 32;

{ error values for ShellExecute() beyond the regular WinExec() codes }
  {$EXTERNALSYM SE_ERR_SHARE}
  SE_ERR_SHARE                   = 26;
  {$EXTERNALSYM SE_ERR_ASSOCINCOMPLETE}
  SE_ERR_ASSOCINCOMPLETE         = 27;
  {$EXTERNALSYM SE_ERR_DDETIMEOUT}
  SE_ERR_DDETIMEOUT              = 28;
  {$EXTERNALSYM SE_ERR_DDEFAIL}
  SE_ERR_DDEFAIL                 = 29;
  {$EXTERNALSYM SE_ERR_DDEBUSY}
  SE_ERR_DDEBUSY                 = 30;
  {$EXTERNALSYM SE_ERR_NOASSOC}
  SE_ERR_NOASSOC                 = 31;

Ich hoffe einfach mal, dass ich das hier veröffentlichen darf.

[edit] Die Stachelpflanze war schneller :lol: [/edit]

Der.Kaktus 10. Jul 2009 12:45

Re: pdf wird mit shellexecute nicht angezeigt
 
@Deddy war schneller :-D :cheers:

Jerry 10. Jul 2009 12:48

Re: pdf wird mit shellexecute nicht angezeigt
 
Danke Euch beiden! Die Lösung des Problems, hat mir einen Haufen Arbeit erspart.

Gruzz aus der Schweiz!!


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