我需要获取默认打印机名称.我将使用C#,但我怀疑这更多的是一个框架问题,并不是特定于语言的.

推荐答案

我找到的最简单的方法是创建一个新的PrinterSettings对象.它从所有默认值开始,因此您可以判断其Name属性以获取默认打印机的名称.

PrinterSettings在系统中.绘画名称空间System.Drawing.Printing中的dll.

PrinterSettings settings = new PrinterSettings();
Console.WriteLine(settings.PrinterName);

或者,您也可以使用静电方法获取所有打印机名称的列表,然后设置属性并判断IsDefaultPrinter.我还没有试过这个,但是文档似乎表明它不会起作用.显然,只有当PrinterName未显式设置时,IsDefaultPrinter才为真.

.net相关问答推荐

API响应返回null错误. NET MAUI

.NET发布的应用程序运行与开发不同的端口

在计算Total毫秒时,.NET TimeSpan类中是否存在错误?

在 .NET 7 项目上设置 Sentry 时遇到问题

无法对.NET MAUI类库进行单元测试

如何查询 DOTNET_CLI_TELEMETRY_OPTOUT 是否永久设置为 TRUE?

out 和 ref 可以用作临时变量吗?

是否有任何 x 次的 for 循环的更短/更简单的版本?

在 C# DllImport 中使用 32 位或 64 位 dll

实例化具有运行时确定类型的对象

如何在 C# 中直接执行 SQL 查询?

struct 中需要覆盖什么以确保平等正常运行?

Java 和 .NET 技术/框架的类似物

在 C# 中将字符串转换为十六进制字符串

Double.TryParse 或 Convert.ToDouble - 哪个更快更安全?

如何确定字符串是 C# 中的有效 IPv4 还是 IPv6 地址?

如何访问 Session 变量并在 javascript 中设置它们?

如果锁定的对象内部发生异常,它会保持锁定状态吗?

根据条件从列表中删除项目

从不同程序集中的类名中解析类型