Seite 2 von 2
Re: Drucker dauerhaft wählen
Verfasst: 13.01.2010 16:38
von hjbremer
wenn es nur darum geht den Defaultdrucker umzustellen
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 )
jeweils am Anfang und Ende mit den entsprechenden Druckernamen aufrufen
Re: Drucker dauerhaft wählen
Verfasst: 02.10.2010 16:20
von Max_der_Held
obwohl das heir schon lange her ist (ich habs trotzdem erst nicht gefunden)
hier eine andere lösungsmöglichkeit mit GetProfileString_() und writeprofilestring_()
wobei die ersten 2 proceduren von gnozal sind (codearchiv 4.0)
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
lg
max
Re: Drucker dauerhaft wählen
Verfasst: 03.11.2016 10:14
von michstro
Hallo,
ich habe zu dem relativ altem Thema eine Frage,
wenn ich versuche den Printer mit
Code: Alles auswählen
Procedure MeinDrucker()
If PrintRequester()
If StartPrinting("Test")
Default_Printer = Getdefaultprinter()
Debug Default_Printer
StopPrinting()
EndIf
EndIf
EndProcedure
auszulesen dann funktioniert das wirklich nur wenn ich auch einen Startprinting Befehl sende. Was auf dem Drucker ein leeres Blatt ausdruckt.
Wie kann ich das umgehen, oder wo ist mein Fehler.
Ich möchte jetzt nicht meinen eigenen PrintRequester schreiben, aber wie kann ich den Printrequester verwenden und dann den Drucker auslesen?
Viele Grüsse
Michael