Hot News:

Unser Angebot:

  Foren auf CAD.de
  VBasic / vb.net / vbs / wsh
  pdf über VB öffnen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
Autor Thema:  pdf über VB öffnen (1191 mal gelesen)
BJ
Mitglied
PLM System Administrator


Sehen Sie sich das Profil von BJ an!   Senden Sie eine Private Message an BJ  Schreiben Sie einen Gästebucheintrag für BJ

Beiträge: 488
Registriert: 20.12.2002

erstellt am: 12. Jun. 2003 10:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

wie öffne ich am einfachsten ein pdf-File mit VB?

Gruß,
BJ

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Ulf_K
Mitglied
Elektrotechniker


Sehen Sie sich das Profil von Ulf_K an!   Senden Sie eine Private Message an Ulf_K  Schreiben Sie einen Gästebucheintrag für Ulf_K

Beiträge: 204
Registriert: 20.02.2002

erstellt am: 12. Jun. 2003 11:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für BJ 10 Unities + Antwort hilfreich

Hallo BJ,

anbei ein wenig Code. Die Funktion wartet nun solange bis der Reader wieder geschlossen wird. Brauchst du das nicht, lösch es einfach heraus. cd1 ist der CommonDialog zur Dateiauswahl.

Aufruf Funktion in Form:
Private Sub Form_Load()

Dim Filename As String

cd1.ShowOpen

Filename = cd1.Filename
ShellAndWait "C:\Programme\Adobe\Acrobat 4.0\Reader\AcroRd32.exe " & Filename
End Sub
Ende Aufruf Funktion in Form

Anfang Modul:
Option Explicit

Private Type STARTUPINFO
  cb As Long
  lpReserved As String
  lpDesktop As String
  lpTitle As String
  dwX As Long
  dwY As Long
  dwXSize As Long
  dwYSize As Long
  dwXCountChars As Long
  dwYCountChars As Long
  dwFillAttribute As Long
  dwFlags As Long
  wShowWindow As Integer
  cbReserved2 As Integer
  lpReserved2 As Long
  hStdInput As Long
  hStdOutput As Long
  hStdError As Long
End Type

Private Type PROCESS_INFORMATION
  hProcess As Long
  hThread As Long
  dwProcessID As Long
  dwThreadID As Long
End Type

Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Const INFINITE = -1&

Private Declare Function CreateProcessA Lib "kernel32" (ByVal lpApplicationName As Long, ByVal lpCommandLine As String, ByVal lpProcessAttributes As Long, ByVal lpThreadAttributes As Long, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, ByVal lpEnvironment As Long, ByVal lpCurrentDirectory As Long, lpStartupInfo As STARTUPINFO, lpProcessInformation As PROCESS_INFORMATION) As Long
Private Const NORMAL_PRIORITY_CLASS = &H20&

Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long


Sub ShellAndWait(ByVal Filename As String)
  Dim RetVal As Long
  Dim proc As PROCESS_INFORMATION
  Dim StartInf As STARTUPINFO
 
  StartInf.cb = Len(StartInf)
  'Angegebenes Programm starten
  RetVal = CreateProcessA(0&, Filename, 0&, 0&, 1&, NORMAL_PRIORITY_CLASS, 0&, 0&, StartInf, proc)

  'Das eigene Programm anhalten, bis das fremde beendet wurde
  RetVal = WaitForSingleObject(proc.hProcess, INFINITE)
  RetVal = CloseHandle(proc.hProcess)
End Sub
Ende Modul


Viel Spass beim Nachbasteln

Ulf

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Ulf_K
Mitglied
Elektrotechniker


Sehen Sie sich das Profil von Ulf_K an!   Senden Sie eine Private Message an Ulf_K  Schreiben Sie einen Gästebucheintrag für Ulf_K

Beiträge: 204
Registriert: 20.02.2002

erstellt am: 12. Jun. 2003 11:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für BJ 10 Unities + Antwort hilfreich

Hallo BJ,

funktioniert auch mit dem normalen Shell-Befehl

Aufruf Funktion in Form:
Private Sub Form_Load()

Dim Filename As String

cd1.ShowOpen

Filename = cd1.Filename
Shell "C:\Programme\Adobe\Acrobat 4.0\Reader\AcroRd32.exe " & Filename, 1
End Sub
Ende Aufruf Funktion in Form

Nochmals Grüsse

Ulf

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

BJ
Mitglied
PLM System Administrator


Sehen Sie sich das Profil von BJ an!   Senden Sie eine Private Message an BJ  Schreiben Sie einen Gästebucheintrag für BJ

Beiträge: 488
Registriert: 20.12.2002

erstellt am: 12. Jun. 2003 12:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Ulf,

danke erstmal für deine Antwort.
Was ist aber, wenn ich mein Makro auf verschiedenen Rechnern laufen habe, wo verschiedene Versionen von dem Reader installiert sind?

Gruß,
BJ

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Ulf_K
Mitglied
Elektrotechniker


Sehen Sie sich das Profil von Ulf_K an!   Senden Sie eine Private Message an Ulf_K  Schreiben Sie einen Gästebucheintrag für Ulf_K

Beiträge: 204
Registriert: 20.02.2002

erstellt am: 12. Jun. 2003 15:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für BJ 10 Unities + Antwort hilfreich

Hallo BJ,

suche über das FileSystemObject den Pfad und die passende EXE des Acrobat Readers.

Grüsse
Ulf

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

BJ
Mitglied
PLM System Administrator


Sehen Sie sich das Profil von BJ an!   Senden Sie eine Private Message an BJ  Schreiben Sie einen Gästebucheintrag für BJ

Beiträge: 488
Registriert: 20.12.2002

erstellt am: 13. Jun. 2003 09:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke Ulf!
Genau das habe ich gesucht!

Gruß,
BJ

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Erwin
Mitglied
CAD-PDM-Admin


Sehen Sie sich das Profil von Erwin an!   Senden Sie eine Private Message an Erwin  Schreiben Sie einen Gästebucheintrag für Erwin

Beiträge: 245
Registriert: 03.11.2000

Job: Inventor 2022, AutoCAD 2022, CATIA V5R2018, Solidworks 2022
Privat: Blender 3D, Sketchup

erstellt am: 16. Jul. 2003 15:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für BJ 10 Unities + Antwort hilfreich

Hi,

ich hab noch einen anderen Ansatz, weil ich in meinem Fall die Datei mit der der Endung zugewiesenen Anwendung öffnen wollte, was ja recht flexibel sein kann ... und ich hab's mit VBScript gelöst, evtl. ist eine Syntaxanpassung notwendig:

  DIM WshShell, wmi, ergebnis, wql, prozess

'entspricht etwa "Start" / "Ausführen"
  Set WshShell = WScript.CreateObject("WScript.Shell")
  WshShell.Run "cmd /K """ + FileName + """"
  WScript.Sleep 1000 
'kleine Pause, wird für den nächsten Schritt benötigt

' SHELL-Fenster zumachen, damit keine herrenlosen DOS-Boxen rumstehen - also alle CMD-Prozesse beenden

' mit WMI verbinden
  Set wmi = GetObject("winmgmts:")
  wql = "select * from win32_process where name='cmd.exe'"
  Set ergebnis = wmi.ExecQuery(wql)
  for each Prozess in ergebnis
    Prozess.Terminate 0
  next
  WScript.Sleep 1000

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz