Ich denke, Du bist mit XIDE unterwegs?
Dann zB im Source "PrinterSettings" markieren, F1 - öffnet die MS docu für Printersettings
(sonst: https://learn.microsoft.com/en-us/dotne ... esktop-9.0)
Schaust Du unter Links unter Properties scheint es keine "Installed Printer" zu geben, aber "IsDefaultPrinter" gibt es, also machst Du eine Schleife über die Rückgabe vom alten Code und kriegst es so raus. Wenn man das öfter braucht, kann man das natürlich auch in eine kleine Funktion, meinehalben "GetDefaultPrinter" packen und so verstecken..
Windows 11 Drucker auslesen
Moderator: wriedmann
Re: Windows 11 Drucker auslesen
Regards
Karl
(on Win8.1/64, Xide32 2.20, X#2.20.0.3)
Karl
(on Win8.1/64, Xide32 2.20, X#2.20.0.3)
Re: Windows 11 Drucker auslesen
Hallo
Stimmt ich bin mit XIDE unterwegs. Allerdings nur für mein eigenes altes Programm. Deshalb habe ich auch große Probleme mit den Neuerungen.
IsDefaultPrinter ist nicht bekannt. Sie sollte aber lt Hilfe vorhanden sein.
// IF PrinterSettings.IsDefaultPrinter{ x }
// IF (PrinterSettings.IsDefaultPrinter) {PrinterSettings.PrinterName}
IF (PrinterSettings.IsDefaultPrinter) {x}
error XS0426: The type name 'IsDefaultPrinter' does not exist in the type 'System.Drawing.Printing.PrinterSettings'
Danke Martin
Stimmt ich bin mit XIDE unterwegs. Allerdings nur für mein eigenes altes Programm. Deshalb habe ich auch große Probleme mit den Neuerungen.
IsDefaultPrinter ist nicht bekannt. Sie sollte aber lt Hilfe vorhanden sein.
// IF PrinterSettings.IsDefaultPrinter{ x }
// IF (PrinterSettings.IsDefaultPrinter) {PrinterSettings.PrinterName}
IF (PrinterSettings.IsDefaultPrinter) {x}
error XS0426: The type name 'IsDefaultPrinter' does not exist in the type 'System.Drawing.Printing.PrinterSettings'
Danke Martin
Re: Windows 11 Drucker auslesen
Hello Martin,
Sieht so aus: Dateiname zwischen 'attachment' tags.
Dick
Unter der Nachricht: Attachments, Add Files, Place inlineTudorf wrote: Fri May 16, 2025 7:29 am Wie kann ich ein Bild hochladen. Ich hatte den link https://ibb.co/spSXSjc3 zwischen img und /img eingefügt. Sehe aber kein Bild.
Sieht so aus: Dateiname zwischen 'attachment' tags.
Dick
Re: Windows 11 Drucker auslesen
Hi Martin,
It's very strange how this particular thing has been implemented in .Net, but this code should give the name of the default printer:
It's very strange how this particular thing has been implemented in .Net, but this code should give the name of the default printer:
Code: Select all
USING System.Drawing.Printing
....
LOCAL oPS AS PrinterSettings
oPS := PrinterSettings{}
? oPS:IsDefaultPrinter // should return TRUE
? oPS:PrinterName // name of default printer
Chris Pyrgas
XSharp Development Team
chris(at)xsharp.eu
XSharp Development Team
chris(at)xsharp.eu
Re: Windows 11 Drucker auslesen
Hallo an alle
Danke für die Hilfe. Es läuft.
Martin
Danke für die Hilfe. Es läuft.
Martin
Re: Windows 11 Drucker auslesen
Hallo
Könnte mir noch jemand sagen wie ich das setup bzw. PrinterSettings() vom Drucker aufrufe.
_aktPrinter: PrinterSettings() akzeptiert X# nicht.
Ich habe keine Ahnung was Mircrosoft mir mit den Infos sagen will.
Danke Martin
Könnte mir noch jemand sagen wie ich das setup bzw. PrinterSettings() vom Drucker aufrufe.
_aktPrinter: PrinterSettings() akzeptiert X# nicht.
Ich habe keine Ahnung was Mircrosoft mir mit den Infos sagen will.
Danke Martin
- ArneOrtlinghaus
- Posts: 495
- Joined: Tue Nov 10, 2015 7:48 am
- Location: Italy
Re: Windows 11 Drucker auslesen
Es kann davon abhängen, für welche Komponente man die Drucker auslesen will. Windows hat mehrere (ältere) Drucker-APIs.
Wir haben noch zum Teil die Crystal Reports 9-Runtime aktiv und die benutzt eine alte Drucker-API, die noch die Druckerports benötigt.
Entsprechend können Druckernamen/Einstellungen abweichen.
Deshalb wird in unseren Programmen bei Benutzung der Crystal Reports-Runtime ein Vergleich über die Registry gemacht zwischen neueren Druckereinstellungen und älteren und eventuell eine Warnung ausgegeben, dass etwas nicht stimmt. Ansonsten druckt das Programm ins Leere ohne eine Warnung auszugeben. Bei den meisten Windows-Installationen wird beim Einloggen des Benutzers automatisch alles auf den gleichen Stand gebracht, aber es gibt manchmal Ausnahmen.
Gruß
Arne
Wir haben noch zum Teil die Crystal Reports 9-Runtime aktiv und die benutzt eine alte Drucker-API, die noch die Druckerports benötigt.
Entsprechend können Druckernamen/Einstellungen abweichen.
Deshalb wird in unseren Programmen bei Benutzung der Crystal Reports-Runtime ein Vergleich über die Registry gemacht zwischen neueren Druckereinstellungen und älteren und eventuell eine Warnung ausgegeben, dass etwas nicht stimmt. Ansonsten druckt das Programm ins Leere ohne eine Warnung auszugeben. Bei den meisten Windows-Installationen wird beim Einloggen des Benutzers automatisch alles auf den gleichen Stand gebracht, aber es gibt manchmal Ausnahmen.
Gruß
Arne
Re: Windows 11 Drucker auslesen
Hallo
Ich habe mich wahrscheinlich unglücklich ausgedrückt. Ich meine den Aufruf unter .NET für die Druckereigenschaften.
Unter VO hatte ich es so:
METHOD pshSetup ()
// Standard-Dialogbox des Druckerteibers anzeigen
LOCAL nPos AS WORD
nPos := oDCcmbDrucker:currentItemNo
IF nPos = 0
InfoBox { , "Achtung Hinweiß", ;
"Kein gültiger Drucker ausgewählt !" }:show ()
ELSE
PrintingDevice { _aPrinter [nPos,1]}:setup ()
ENDIF
RETURN SELF
Martin
Ich habe mich wahrscheinlich unglücklich ausgedrückt. Ich meine den Aufruf unter .NET für die Druckereigenschaften.
Unter VO hatte ich es so:
METHOD pshSetup ()
// Standard-Dialogbox des Druckerteibers anzeigen
LOCAL nPos AS WORD
nPos := oDCcmbDrucker:currentItemNo
IF nPos = 0
InfoBox { , "Achtung Hinweiß", ;
"Kein gültiger Drucker ausgewählt !" }:show ()
ELSE
PrintingDevice { _aPrinter [nPos,1]}:setup ()
ENDIF
RETURN SELF
Martin
Re: Windows 11 Drucker auslesen
You can show a Printer Dialog or a Printer Dialog with Properties button enabled:
Code: Select all
PRIVATE METHOD ShowPrinterDialogButton_Click(sender AS System.Object, e AS System.EventArgs) AS VOID STRICT
LOCAL printDoc AS PrintDocument
LOCAL printDialog AS printDialog
LOCAL result AS DialogResult
printDoc := PrintDocument{}
printDialog := printDialog{}
printDialog:Document := printDoc
result := printDialog:ShowDialog()
IF result == DialogResult.OK
MessageBox.Show("Selected printer: " + printDoc:PrinterSettings:PrinterName)
// Optional: printDoc:Print()
ENDIF
RETURN
END METHOD
PRIVATE METHOD ShowPrinterPropertiesButton_Click(sender AS System.Object, e AS System.EventArgs) AS VOID STRICT
ShowPrinterProperties()
RETURN
END METHOD
PRIVATE METHOD ShowPrinterProperties() AS VOID
LOCAL printDialog AS printDialog
printDialog := printDialog{}
printDialog:UseEXDialog := TRUE // Enables the Properties button
IF printDialog:ShowDialog() == DialogResult.OK
LOCAL PrinterName AS STRING
PrinterName := printDialog:PrinterSettings:PrinterName
MessageBox.Show("Selected Printer: " + PrinterName)
ENDIF
RETURN
END METHOD
Re: Windows 11 Drucker auslesen
Hi Martin,
Your code should work also in X#, I tested something similar here and I do see the printer setup dialog. Or do you mean this no longer works in Windows 11 ?
Your code should work also in X#, I tested something similar here and I do see the printer setup dialog. Or do you mean this no longer works in Windows 11 ?
Chris Pyrgas
XSharp Development Team
chris(at)xsharp.eu
XSharp Development Team
chris(at)xsharp.eu

