Autor Thema: <pdf> mit Shell32 öffnen?  (Gelesen 5229 mal)

Offline Sturmvogel

  • Frischling
  • *
  • Beiträge: 6
<pdf> mit Shell32 öffnen?
« am: 28.01.05 - 10:48:33 »
Hallo.
Ich hab zwar schon einiges hier zu PDF Dokumenten gelesen, aber trotzdem eine Frage, die ich für meine Entwicklung bräuchte:
ist es möglich, wenn ich einen Pfad habe, das pdf-Dokument via Shell32 Aufruf zu öffnen? Ich hörte, ich müsste eine lsx einbinden, weiss aber nicht so recht welche.

Danke für eure Hilfe!

Driri

  • Gast
Re: <pdf> mit Shell32 öffnen?
« Antwort #1 am: 28.01.05 - 11:01:50 »
Es gibt meine ich eine API-Funktion, die dir für eine Datei die zugehörige Anwendung ermittelt.

Würde dir das weiterhelfen ? Dann schau ich mal, ob ich die Funktion finde.

Driri

  • Gast
Re: <pdf> mit Shell32 öffnen?
« Antwort #2 am: 28.01.05 - 11:03:31 »
Hab sie auf Anhieb gefunden, habs aber noch nie genutzt, also ohne Gewähr  ;)

Zitat
Declare Function FindExecutable Lib "shell32.dll" Alias "FindExecutableA" (ByVal lpFile As String, ByVal lpDirectory As String, ByVal sResult As String) As Long

Const MAX_PATH As Long = 260
Const ERROR_FILE_NO_ASSOCIATION As Long = 31
Const ERROR_FILE_NOT_FOUND As Long = 2
Const ERROR_PATH_NOT_FOUND As Long = 3
Const ERROR_FILE_SUCCESS As Long = 32 'my constant
Const ERROR_BAD_FORMAT As Long = 11

Sub Click(Source as Button)

Dim success As Long
Dim pos As Long
Dim sResult As String
Dim msg As String

sResult = Space$(MAX_PATH)

'lpFile: name of the file of interest
'lpDirectory: location of lpFile
'sResult: path and name of executable associated with lpFile
success = FindExecutable("winhlp32.hlp", "c:\winnt\system32\", sResult)

Select Case success
Case ERROR_FILE_NO_ASSOCIATION: msg = "no association"
Case ERROR_FILE_NOT_FOUND: msg = "file not found"
Case ERROR_PATH_NOT_FOUND: msg = "path not found"
Case ERROR_BAD_FORMAT: msg = "bad format"

Case Is >= ERROR_FILE_SUCCESS:

pos = InStr(sResult, Chr$(0))

If pos Then
msg = Left$(sResult, pos - 1)
End If

End Select

MsgBox msg

End Sub

Offline Gandhi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 918
  • Geschlecht: Männlich
  • Domino for the masses
Re: <pdf> mit Shell32 öffnen?
« Antwort #3 am: 28.01.05 - 11:11:49 »
Soviel ich weiß würde es reichen die Datei (mittels Win-API) zu starten und Windows entscheiden zu lassen, welches Programm für den Dateityp das Richtige ist...?
Der "Wenn ich" und der "Hätt' ich" das sind zwei arme Leut'
oder für den Süden:
Hatti Tatti Wari - san drei Larifari

Offline Sturmvogel

  • Frischling
  • *
  • Beiträge: 6
Re: <pdf> mit Shell32 öffnen?
« Antwort #4 am: 28.01.05 - 11:29:15 »
und wo und wie kann ich den Code einfügen um ihn zu testen? :)
den Click-Event für einen Button hab ich gesehen, klar, und die Konstanten? wohin damit?
ne frage zu den Konstanten: Konstanten gleichzeitig deklariere und einen Wert zuweisen?
Warum mag mein 5er Designer das nicht?

Driri

  • Gast
Re: <pdf> mit Shell32 öffnen?
« Antwort #5 am: 28.01.05 - 11:33:13 »
Stimmt, Gandhis Vorschlag ist noch besser. Wenn nen Acrobat Reader oder so installiert ist, sollte es reichen die PDF-Datei einfach aufzurufen.

Edit : Nimm bei den CONST mal das "As Long" weg.
« Letzte Änderung: 28.01.05 - 11:37:18 von Driri »

Offline Sturmvogel

  • Frischling
  • *
  • Beiträge: 6
Re: <pdf> mit Shell32 öffnen?
« Antwort #6 am: 28.01.05 - 11:40:15 »
ok, mittels WinAPI: und wie?  8)
gibt es da einen speziellen Aufruf?

Driri

  • Gast
Re: <pdf> mit Shell32 öffnen?
« Antwort #7 am: 28.01.05 - 11:58:11 »
Forensuche wirkt manchmal wunder  ;)

http://www.atnotes.de/index.php?topic=2771.0

Offline Sturmvogel

  • Frischling
  • *
  • Beiträge: 6
Re: <pdf> mit Shell32 öffnen?
« Antwort #8 am: 28.01.05 - 12:07:25 »
Mist ;)

Auf jeden Fall danke an alle. Werds mir gleich anschauen...

Offline Sturmvogel

  • Frischling
  • *
  • Beiträge: 6
Re: <pdf> mit Shell32 öffnen?
« Antwort #9 am: 28.01.05 - 14:39:44 »
also irgendwie schaff ich es nicht, die Function FindExecutable Lib korrekt zu deployen.
hätte jemand ne nsf wo die vielleicht in einem agenten oder in einer SB drin ist?

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.718
  • Geschlecht: Männlich
Re: <pdf> mit Shell32 öffnen?
« Antwort #10 am: 28.01.05 - 15:00:51 »
ganz einfach:

mache dir mal eine neue Schaltfläche / Typ Script

In die Declaration Section kommt folgendes

Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (Byval hwnd As Long, Byval lpOperation As String, Byval lpFile As String, Byval lpParameters As String, Byval lpDirectory As String, Byval nShowCmd As Long) As Long

der Click sieht so aus:

Sub Click(Source As Button)
      'You can put this code in any action or hotspot
'Dim the control variables
   Dim hwnd As Long 'the windows handle dont need to initalize
   Dim lpOperation As String
   Dim lpFile As String
   Dim lpParameters As String
   Dim lpDirectory As String
   Dim nShowCmd As Long
   Dim Hwin32 As Long 'the windows target handle dont need to initalize
   
'Initialize the vars
   lpFile = "ImportBild.txt" 'Describe the file name
   lpDirectory = "c:\Downloads" 'Describe file location
   nShowCmd = 1 'Show the open file
   lpOperation = "Open" 'if you want to print the file change to "Print"
'and finally execute the file
   Hwin32 = ShellExecute(hwnd,lpOperation,lpFile,"",lpDirectory,nShowCmd)
End Sub

hier musst du jetzt lpFile und lpDirectory anpassen

das ist die einfachste Art; ohne viel SchnickSchnak und ohne ... ERRORHANDLING  8)
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Sturmvogel

  • Frischling
  • *
  • Beiträge: 6
Re: <pdf> mit Shell32 öffnen?
« Antwort #11 am: 28.01.05 - 15:21:09 »
OHNE ERRORHANDLER? wenn das mein Chef sieht.. ;)

Danke!

Hmm. Tut nicht.
Es poppt kein Fehler auf, aber das PDF öffnet sich nicht :(
beim Versuch mit einem Textfile klappt es. Aber das PDF: nö,mag er nicht...
« Letzte Änderung: 28.01.05 - 15:42:32 von Sturmvogel »

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz