Files
AVISO/Aviso/frmWechselStandarddrucker.vb

111 lines
3.9 KiB
VB.net

Imports System.IO
Imports System.Runtime.InteropServices
Public Class frmWechselStandarddrucker
Private filePathListOfPrinters As List(Of String) = New List(Of String)
Private Sub frmWechselStandarddrucker_Load(sender As Object, e As EventArgs) Handles MyBase.Load
filePathListOfPrinters.Add(FileIO.SpecialDirectories.MyDocuments & "\AVISO_OPTIONS.txt")
filePathListOfPrinters.Add("C:\AVISO_OPTIONS.txt")
For Each path As String In filePathListOfPrinters
getCurrentPrintersFromFile(path)
Next
txtCurrentPrinter._value = VERAG_PROG_ALLGEMEIN.cAllgemein.PRINTER_STANDARD
txtCurrentPrinterBon._value = VERAG_PROG_ALLGEMEIN.cAllgemein.PRINTER_BON
SDL.cProgramFunctions.initDrucker(cboDefaultprinter, VERAG_PROG_ALLGEMEIN.cAllgemein.PRINTER_STANDARD, False)
SDL.cProgramFunctions.initDrucker(cboDefaultprinterBON, VERAG_PROG_ALLGEMEIN.cAllgemein.PRINTER_BON, False)
End Sub
Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
If cboDefaultprinterBON.SelectedItem Is Nothing Or cboDefaultprinter.SelectedItem Is Nothing Then Me.Close()
VERAG_PROG_ALLGEMEIN.cAllgemein.PRINTER_STANDARD = cboDefaultprinter._value
VERAG_PROG_ALLGEMEIN.cAllgemein.PRINTER_BON = cboDefaultprinterBON._value
SetDefaultPrinter(cboDefaultprinter._value)
For Each path As String In filePathListOfPrinters
changetxtFileForPrinter(path)
Next
MsgBox("Drucker wurden geändert")
End Sub
Private Function changetxtFileForPrinter(printerFile As String) As Boolean
Dim changed As Boolean = False
If File.Exists(printerFile) Then
Dim l = IO.File.ReadAllLines(printerFile, System.Text.Encoding.Default)
If l.Count > 0 Then
If Not String.IsNullOrWhiteSpace(cboDefaultprinter._value) Then
Dim lines As List(Of String) = IO.File.ReadAllLines(printerFile).ToList
For index As Integer = 0 To lines.Count - 1
If lines(index).ToLower.StartsWith("printer") Then
lines(index) = String.Concat("PRINTER:", cboDefaultprinter._value)
changed = True
End If
Next
If changed Then IO.File.WriteAllLines(printerFile, lines.ToArray)
End If
If Not String.IsNullOrWhiteSpace(cboDefaultprinterBON._value) Then
Dim lines As List(Of String) = IO.File.ReadAllLines(printerFile).ToList
For index As Integer = 0 To lines.Count - 1
If lines(index).ToLower.StartsWith("bon") Then
lines(index) = String.Concat("BON:", cboDefaultprinterBON._value)
changed = True
End If
Next
If changed Then IO.File.WriteAllLines(printerFile, lines.ToArray)
End If
End If
End If
Return changed
End Function
Private Sub getCurrentPrintersFromFile(printerFile As String)
If File.Exists(printerFile) Then
Dim l = IO.File.ReadAllLines(printerFile, System.Text.Encoding.Default)
If l.Count > 0 Then
For Each li In l
If li.StartsWith("BON:") Then
VERAG_PROG_ALLGEMEIN.cAllgemein.PRINTER_BON = (li.Replace("BON:", "")).Trim
End If
If li.StartsWith("PRINTER:") Then
VERAG_PROG_ALLGEMEIN.cAllgemein.PRINTER_STANDARD = (li.Replace("PRINTER:", "")).Trim
End If
Next
End If
End If
End Sub
<DllImport("winspool.drv", CharSet:=CharSet.Auto, SetLastError:=True)>
Public Shared Function SetDefaultPrinter(Name As String) As Boolean
End Function
End Class