Code: Alles auswählen
printername$ = #DQUOTE$ + "KODAK ESP 5 AiO" + #DQUOTE$
;wird Standarddrucker !!!
pn$ = "/y /n " + printername$
rpg = RunProgram("RUNDLL32", "PRINTUI.DLL, PrintUIEntry " + pn$, "", #PB_Program_Open )
Code: Alles auswählen
printername$ = #DQUOTE$ + "KODAK ESP 5 AiO" + #DQUOTE$
;wird Standarddrucker !!!
pn$ = "/y /n " + printername$
rpg = RunProgram("RUNDLL32", "PRINTUI.DLL, PrintUIEntry " + pn$, "", #PB_Program_Open )
Code: Alles auswählen
Structure Printers
P.s
EndStructure
Global NewList Printers.Printers()
Procedure GetPrinterList()
ClearList(Printers())
Buffersize.l = 8102
*Buffer = AllocateMemory(Buffersize)
TempPrinter.s = Space(1024)
If GetProfileString_("devices",0,"",*Buffer,Buffersize)
TempString.s = PeekS(*Buffer)
Length = Len(TempString)
While TempString <> ""
GetPrivateProfileString_("devices",TempString,"",TempPrinter,1024,"Win.Ini")
AddElement(Printers())
Printers()\P = TempString+","+StringField(TempPrinter,1,",")+","+StringField(TempPrinter,2,",")
TempString = PeekS(*Buffer+Length + 1)
Length = Length + Len(TempString) + 1
TempString = PeekS(*Buffer+Length + 1)
Wend
Else
MessageRequester("Error","No printer installed",64)
EndIf
FreeMemory(*Buffer)
EndProcedure
; ------------
; Set default printer (should work for all windows versions)
Procedure Setdefaultprinter_(DeviceLine.s)
;DeviceLine=PrinterName,DriverName,PrinterPort
;Store the new printer information in the
; [WINDOWS] section of the WIN.INI file for
;the DEVICE= item
WriteProfileString_("windows", "Device", DeviceLine)
;Cause all applications To reload the INI file
SendMessage_(#HWND_BROADCAST, #WM_WININICHANGE, 0, "windows")
EndProcedure
Procedure.s druck_GetcurrentPrinter()
Protected str.s = Space(100)
GetProfileString_ ("windows", "Device", "", @str,101)
ProcedureReturn str
EndProcedure
Code: Alles auswählen
Procedure MeinDrucker()
If PrintRequester()
If StartPrinting("Test")
Default_Printer = Getdefaultprinter()
Debug Default_Printer
StopPrinting()
EndIf
EndIf
EndProcedure