none
mshtml.dll unter Windows 7 funktioniert nicht RRS feed

  • Frage

  • Hallo zusammen,

    in einer VB6 Anwendung soll eine HTML-Datei ausgedruckt werden. Dies ist mit der mshtml.dll implementiert:

    hDialog = ShellExecute(Me.hwnd, vbNullString, "rundll32.exe", "mshtml.dll,PrintHTML " & _
    Chr$(34) & sFileName & Chr$(34) & Chr$(34) & Printer.DriverName & Chr$(34) & _
    Chr$(34) & drucker & Chr$(34) & Chr$(34) & Printer.Port & Chr$(34), "", vbHide)

    Unter Windows XP funktioniert es einwandfrei. Beim Aufrufen unter Windows 7 funktioniert nicht. Es gibt auch keine Fehlermeldung dabei. Unter Windows 7 ist folgende mshtml.dll-Version installiert: 9.0.8112.16506.

    Hatte jemand ähnliches Problem?

    Montag, 23. September 2013 08:36

Alle Antworten

  • Hallo!

    Ich habe das Problem auch und hoffe, dass Du mittlerweile eine Lösung gefunden hast?

    Mittwoch, 11. Dezember 2013 11:12
  • Hallo,

    so funktioniert bei mir:

    Sub druckenMsHtml(sFileName As String)

        hDialog = ShellExecute(0, vbNullString, _

        "rundll32.exe", "C:\windows\system32\mshtml.dll,PrintHTML " & _

        Chr$(34) & sFileName & Chr$(34) & _

        Chr$(34) & Printer.DriverName & Chr$(34) & _

        Chr$(34) & Printer.DeviceName & Chr$(34) & _

        Chr$(34) & Printer.Port & Chr$(34), _

        "", 1)

        SendMessage hDialog, WM_CLOSE, 0&, 0&

    End Sub

    Mittwoch, 11. Dezember 2013 14:28
  • Danke!

    Funktioniert, solange man als Konstante die 1 (= zeigt den Druckendialog und aktiviert ihn) verwendet. Und so kam ich auch drauf, was das Problem im ganz oben stehenden Code ist: vbHide!

    Wenn ich in meinem alten Code vbHide durch 1 ersetze, läuft auch dieser wieder.

    Drucken ohne Anzeige des Druckdialogs scheint nicht mehr zu gehen. Auch nicht mit 0 (= versteckt das Fenster, Drucken ohne Anzeige des Druckdialog) als Konstante.

    Grüße aus Hessen!

    Mittwoch, 11. Dezember 2013 14:59