Drucker dauerhaft wählen
-
- Beiträge: 12
- Registriert: 09.01.2010 12:05
- Computerausstattung: WIN 10
PureBasic 7.52 für Windows (x64 64-bit) - Wohnort: Cuxhaven
Re: Drucker dauerhaft wählen
Super, das ist die Lösung.
Da wäre ich von allein nicht drauf gekommen.
Danke.
Da wäre ich von allein nicht drauf gekommen.
Danke.
PureBasic 4.4
XP SP3
INTEL CORE QUAD
2 GB
XP SP3
INTEL CORE QUAD
2 GB
- Mok
- BotHunter
- Beiträge: 1484
- Registriert: 26.12.2005 14:14
- Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit - Wohnort:
Re: Drucker dauerhaft wählen
Hui, und das ganze auch noch ohne WinAPI!
Toller Code
Toller Code

Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Drucker dauerhaft wählen
Biste da sicherMok hat geschrieben:Hui, und das ganze auch noch ohne WinAPI!

- Mok
- BotHunter
- Beiträge: 1484
- Registriert: 26.12.2005 14:14
- Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit - Wohnort:
Re: Drucker dauerhaft wählen
Nja, ich hab den Code nur überflogen und sogar mit Firefox nach _() gesucht und nachdem ich nüscht gefunden hab bin ich mal davon ausgegangen... trotzdem toller Broken Code, den du hier geschrieben hast!ts-soft hat geschrieben:Biste da sicherMok hat geschrieben:Hui, und das ganze auch noch ohne WinAPI!
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Drucker dauerhaft wählen
Es werden nur 2 API-Funktionen aufgerufen, die leider nicht vordefiniert sind, da es sich
um Treiber handelt. Also viel Code ist es nicht, das normalle Vorgehen, wenn man
Funktionen aus einer DLL aufruft, also mit Prototypes, Unicode und Ansi kompatibel,
sowieso x86 und x64.
Sieht also nur Fett aus, ist aber ganz Mager, auch für Diabetiker geeignet
um Treiber handelt. Also viel Code ist es nicht, das normalle Vorgehen, wenn man
Funktionen aus einer DLL aufruft, also mit Prototypes, Unicode und Ansi kompatibel,
sowieso x86 und x64.
Sieht also nur Fett aus, ist aber ganz Mager, auch für Diabetiker geeignet

- Mok
- BotHunter
- Beiträge: 1484
- Registriert: 26.12.2005 14:14
- Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit - Wohnort:
Re: Drucker dauerhaft wählen
Made my dayts-soft hat geschrieben:Sieht also nur Fett aus, ist aber ganz Mager, auch für Diabetiker geeignet

Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
- hjbremer
- Beiträge: 822
- Registriert: 27.02.2006 22:30
- Computerausstattung: von gestern
- Wohnort: Neumünster
Re: Drucker dauerhaft wählen
wenn es nur darum geht den Defaultdrucker umzustellen
jeweils am Anfang und Ende mit den entsprechenden Druckernamen aufrufen
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 )
Purebasic 5.70 x86 5.72 X 64 - Windows 10
Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
- Max_der_Held
- Beiträge: 595
- Registriert: 18.04.2006 17:01
- Wohnort: Bavaria
- Kontaktdaten:
Re: Drucker dauerhaft wählen
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)
lg
max
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
max
Re: Drucker dauerhaft wählen
Hallo,
ich habe zu dem relativ altem Thema eine Frage,
wenn ich versuche den Printer mit
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
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
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