alle dateien in einem verzeichnis ausdrucken

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von us4711.

    alle dateien in einem verzeichnis ausdrucken

    Hallo,

    ich muss ein kleines tool schreiben welches alls x sekunden in einem verzeichnis schaut und dort dateien ausdruckt ... alles was da ist

    leider klappt das noch nicht so ganz ... es kommt nichts am drucker raus ^^ ... ist meine generelle vorgehensweise richtig ?

    VB.NET-Quellcode

    1. Private Sub bgw_print_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bgw_print.DoWork
    2. Dim temp As List(Of Object) = DirectCast(e.Argument, List(Of Object))
    3. Dim printer As String = DirectCast(temp(0), String)
    4. Dim dirInfo As DirectoryInfo = DirectCast(temp(1), DirectoryInfo)
    5. Dim backup As New DirectoryInfo(dirInfo.FullName & "\gedruckt")
    6. Dim p As New Process
    7. If Not backup.Exists Then backup.Create()
    8. For Each print_File As FileInfo In dirInfo.GetFiles
    9. p.StartInfo.FileName = print_File.FullName
    10. p.StartInfo.UseShellExecute = True
    11. p.StartInfo.Arguments = "Printto=" & printer
    12. p.StartInfo.Verb = "Print"
    13. p.Start()
    14. p.WaitForExit()
    15. bgw_print.ReportProgress(0, Now & ": Druckauftrag für " & print_File.FullName & " gesendet!")
    16. print_File.MoveTo(backup.FullName & "\" & print_File.Name)
    17. Next
    18. End Sub


    ich weis nicht ob das mit dem drucker "Printto" so funktioniert, denn ich will nicht auf dem Standarddrucker drucken ...

    Gruß
    Pascal
    da steht aber NICHT bei mir ^^

    es geht eigentlich nur um excel dateien ...

    ich wollte eigentlich nicht mit excel selber rummach in vb aber ich glaube es geht doch so am einfachsten ...

    mein problem ist jetzt allerdings dass ich die datei nach dem drucken verschieben will aber sie anscheinend noch gesperrt ist
    "Anderer Process greift noch auf datei zu blabla ..."

    VB.NET-Quellcode

    1. Dim xlApp As New Excel.Application
    2. Dim xlWb As Excel.Workbook
    3. For Each print_File As FileInfo In dirInfo.GetFiles("*.xls")
    4. xlWb = xlApp.Workbooks.Open(print_File.FullName)
    5. xlWb.PrintOutEx(, , , , printer)
    6. xlWb.Close()
    7. bgw_print.ReportProgress(0, Now & ": Druckauftrag für " & print_File.FullName & " gesendet!")
    8. print_File.MoveTo(backup.FullName & "\" & print_File.Name)
    9. Next
    beim verschieben vielleicht mittes try/catch probieren und (wenn sie auftritt) die entsprechende exception abfangen und nochmal probieren, solange bis keine exception auftritt.
    hatte mal das selbe problem und keine elegantere lösung gefunden.