mshtml.dll,printhtml Druckerdialog unterdrücken

DrMueller

Erfahrenes Mitglied
Hallo Leute,

wir drucken per mshtml.dll,printhtml HTML-Dokumente.
Nun müsste ich jedoch dies soweit umstellen, dass die Druckerabfrage nicht bei jedem Aufruf kommt, sondern einfach auf den Standarddrucker gedruckt wird.
Derzeit sieht dieser so aus:
Visual Basic:
ProcessId = Shell("rundll32.exe " & cWinSysDir & "\MSHTML.DLL,PrintHTML " & Chr(34) & FN & Chr(34), vbN
ormalFocus)


Soweit ich was gefunden habe, hat dieser Aufruf 4 Parameter, wobei 1 der Name, 2 der Drucker, 3 und 4 unbekannt sind. DOch auch wenn ich den Drucker mitangebe und bei 3 und 4 irgendwelche Werte mitgebe, erscheint der Druckerdialog.


Hat da wer eine Idee? Irgendwie muss das Ding doch zu unterdrücken sein.
 
der scheint da irgendwie ne Lösung zu haben per ShellExecute

http://social.msdn.microsoft.com/Forums/nl/vcgeneral/thread/608c6af7-a521-4d32-b657-8b4b82f67791

EDIT: Hier ist ne Beschreibung der ganzen Kommandozeile:
http://blogs.msdn.com/b/fyuan/archi...document-writer-without-user-interaction.aspx

rundll32.exe mshtml.dll,PrintHTML "<document>" "<driver>" "<device>" "<port>"

EDIT 2: Im Zweiten Link steht ein interessanter Satz:
So you should be able to print any webpage to any printing device, to any printer/file, fully automatically. But this creates a security risk, so it has since been blocked. User confirmation is needed to print an HTML page through MSHTML.DLL.

Wenn ich seinen C++-Code richtig verstanden habe, sucht er das Dialogfenster per FindWindow, dort den Print-Button, und schickt ein SendMessage um ferngesteuert auf Drucken zu clicken.

EDIT 3: Also dieser hier sagt auch ShellExecute

http://www.vbarchiv.net/tipps/tipp_346-ausdruck-von-webseiten-html-dokumenten.html
 
Zuletzt bearbeitet:
Hm danke schonmal Zvoni, scheint mir aber nicht gerade eine gute/stabile Lösung zu sein.
Evtl. müssen wir den Bereich ändern, dass halt nicht über diese DLL gedruckt wird.

Falls ich zu dem Thema noch was interessantes finde, schreibe ich es noch hier rein.
 
Zurück