vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: PDF drucken 
Autor: SvenW
Datum: 24.08.05 23:27

hab das problem behoben!

die "waitforproceed" funktion sollte man halt mitnutzen. hast du wohl vergessen wolf. und die millisekunden zahl korrekt einsetzen. dann funktioniert alles einwandfrei.

ich habs jetzt so gelöst:
Private Declare Function GetWindowThreadProcessId Lib "user32.dll" (ByVal hWnd _
  As Long, ByRef lpdwProcessId As Long) As Long
Private Declare Function OpenProcess Lib "kernel32.dll" (ByVal dwDesiredAccess _
As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function TerminateProcess Lib "kernel32.dll" (ByVal hProcess As _
Long, ByVal uExitCode As Long) As Long
Private Declare Function CloseHandle Lib "kernel32.dll" (ByVal hObject As Long) _
As Long
Private Const PROCESS_TERMINATE As Long = (&H1)
Private Declare Function WaitForSingleObject Lib _
  "kernel32" (ByVal hHandle As Long, _
  ByVal dwMilliseconds As Long) As Long
Private Const INFINITE = 1000
Private Const SYNCHRONIZE = &H100000
 
Private Function WaitForProceed(ByVal sFile As String, _
  ByVal wStyle As VbAppWinStyle) As Long
 
  Dim taskID As Long
  Dim Handle As Long
 
  taskID = Shell(sFile, wStyle)
  WaitForProceed = taskID
  Handle = OpenProcess(SYNCHRONIZE, False, taskID)
  Call WaitForSingleObject(Handle, INFINITE)
  Call CloseHandle(Handle)
End Function
 
Public Sub PrintFile(sFile As String)
Dim ap As String
 
' Pfad Des Acrobat Readers emitteln:
ap = RegRead("HKEY_CLASSES_ROOT\AcroExch.Document.7\shell\Print\command\")
' Wenn du einen anderen Dateityp drucken willst musst du natürlich den 
' auszulesenden Pfad
' hier ändern
 
' Mit deinem Dateipfad füllen:
ap = Replace(ap, "%1", sFile)
 
Dim h As Long
h = Shell(ap, vbNormalFocus)
 
WaitForProceed ap, vbNormalFocus
 
GetWindowThreadProcessId h, h
h = OpenProcess(PROCESS_TERMINATE, True, h)
TerminateProcess h, 0
CloseHandle h
End Sub
 
Private Function RegRead(Path As String) As String
  Dim ws As Object
 
  On Error GoTo ErrHandler
  Set ws = CreateObject("WScript.Shell")
  RegRead = ws.RegRead(Path)
  Exit Function
 
ErrHandler:
  RegRead = ""
End Function
 
Private Sub Command1_Click()
PrintFile App.path & "\data\TEST.pdf"
End Sub
Die Verzögerung habe ich auf 1 Sekunde (1000 MIllisekunden gestellt), damit auch auf langsamen Rechnern genug Zeit zum Öffnen und Senden des Druckauftrages bleibt.


Liebe grüße
Sven

Dinge sind nur solange unm?glich, bis sie es nicht mehr sind.

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
PDF drucken1.509SvenW12.08.05 01:19
Re: PDF drucken900Kenjiro12.08.05 03:16
Re: PDF drucken926SvenW12.08.05 14:50
Re: PDF drucken899Kenjiro13.08.05 06:14
Re: PDF drucken920SvenW13.08.05 13:35
Re: PDF drucken1.039Kenjiro13.08.05 16:08
Re: PDF drucken884SvenW14.08.05 01:06
Re: PDF drucken942Kenjiro14.08.05 02:50
Re: PDF drucken928Cocuklarin ulas...14.08.05 10:19
Re: PDF drucken907Cocuklarin ulas...14.08.05 10:30
Re: PDF drucken861SvenW14.08.05 15:35
Re: PDF drucken862Wolf mit Schnul...14.08.05 17:22
Re: PDF drucken941SvenW14.08.05 21:32
Re: PDF drucken803SvenW14.08.05 22:00
Re: PDF drucken937SvenW24.08.05 00:09
Re: PDF drucken875SvenW24.08.05 00:25
Re: PDF drucken839SvenW24.08.05 00:31
Re: PDF drucken824SvenW24.08.05 00:34
Re: PDF drucken807SvenW24.08.05 01:19
Re: PDF drucken861SvenW24.08.05 23:27
Re: PDF drucken1.007SvenW30.08.05 05:00
Re: PDF drucken807SvenW31.08.05 20:27
Re: PDF drucken864T.i.m.02.09.05 21:43
Re: PDF drucken853SvenW02.09.05 23:16
Re: PDF drucken840SvenW02.09.05 23:17

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel