| |
|
|
| E.T. (11.01.11)
Hab mal ein wenig "gebastelt": KompilierenMarkierenSeparieren'############### ##########
'Drucker auflisten
'Andreas Miethe * Juni 2003
'##########################
DEF EnumPrinters(7) ! "WINSPOOL.DRV","EnumPrintersA"
DEF GetStandardPrinter(0) Substr$(ReadIni$("WIN.INI","Windows","Device"),1,",")
DEF &PRINTER_ENUM_LOCAL 2
DEF &PRINTER_ENUM_DEFAULT 1
Declare PrinterValues#, Drucker$[], Y&, Old_Standard$, Old_Standard_rest$
DEF GetStandardPrinter2(0) ReadIni$("WIN.INI","Windows","Device")
Proc EnumPrinters
Declare Printername&,Portname&,PrinterName$,PortName$,Attribs&
Declare X&,dwNeeded&,dwReturned&
EnumPrinters(&PRINTER_ENUM_LOCAL,0,5,0,0,ADDR(dwNeeded&),ADDR(dwReturned&))
Dim PrinterValues#,dwNeeded&
Clear PrinterValues#
EnumPrinters(&PRINTER_ENUM_LOCAL ,0, 5, PrinterValues#, dwNeeded&, ADDR(dwNeeded&), ADDR(dwReturned&))
While X& < dwReturned&*20
Printername& = Long(PrinterValues#,x&)
PrinterName$ = String$(Printername&,0)
Attribs& = Long(PrinterValues#,x&+8)
'folgendes funzt bei mir unter XP nicht:
' If Attribs& & $4
' Printername$ = Printername$ + " => Standarddrucker"
' endif
Drucker$[Y&] = Printername$
X& = X& + 20
inc Y&
EndWhile
Dispose PrinterValues#
Endproc
Proc Set_Std_Printer
Parameters PrinterString$
WriteIni "WIN.INI","Windows","Device"=PrinterString$
EndProc
cls
EnumPrinters
Print "Gefundene Drucker"
WhileLoop 0,Y&-1
Print "Drucker " + @str$(&loop) + " : " + Drucker$[&loop]
EndWhile
Old_Standard$ = Substr$(GetStandardPrinter2(),1,",")
Old_Standard_rest$ = Substr$(GetStandardPrinter2(),-2,",") + "," + Substr$(GetStandardPrinter2(),-1,",")
Print "***"
Print "Standard-Drucker :"
Print Old_Standard$
Print "***"
Print "Drucke auf Drucker " + Drucker$[4]
Set_Std_Printer Drucker$[4] + "," +Old_Standard_rest$
StartPrint
DrawText 10,10,"Test " + Drucker$[4]
EndPrint
Print "Drucke auf Drucker " + Drucker$[2]
Set_Std_Printer Drucker$[2]+","+Old_Standard_rest$
StartPrint
DrawText 10,10,"Test " + Drucker$[2]
EndPrint
Print "***"
Print " >>>alten Standart-Drucker wieder einstellen.."
Set_Std_Printer Old_Standard$+","+Old_Standard_rest$
Print "Standard : " + Old_Standard$
Print "***"
Print ""
Print "...warte"
waitinput
end
erzeugt bei mir folgendes Fenster (sieht nat. bei jedem anders aus, je nach install. Druckern...) und funktioniert wunderbar. Bei pdf kommt die Abfrage "wo speichern", und bei Fax wird nach 'ner Fax-Nummer gefragt. Also werden die Drucker richtig gesetzt. Möge jeder daraus machen, was er will ... |
|
|
| |
|
|
|
Dieter Zornow | Bei nur 3 Druckern ist Drucker$[4] natürlich nicht da, deshalb ist ein Fehler im Code |
|
|
| Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 11.01.2011 ▲ |
|
|
|
|
Jörg Sellmeyer | Du mußt unbedingt einen Link zum Original-Posting reinsetzen Du alter Sterneabstauber Und zwar direkt zum Beitrag und nicht nur zum Thread! |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 11.01.2011 ▲ |
|
|
|
|
E.T. | |
|
| Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 11.01.2011 ▲ |
|
|
|