C# 通过注册表判断"DWG To PDF.pc3"虚拟打印机是否正在打印中
时间: 2023-12-06 19:04:22 浏览: 36
要通过注册表判断"DWG To PDF.pc3"虚拟打印机是否正在打印中,可以使用以下代码:
```csharp
// 虚拟打印机的注册表路径
string virtualPrinterPath = @"HKEY_CURRENT_USER\Software\Autodesk\DWG TrueView\DWG To PDF\Driver";
// 获取虚拟打印机正在打印的状态
object printingStatus = Registry.GetValue(virtualPrinterPath, "Printing", null);
if (printingStatus != null && (int)printingStatus == 1)
{
Console.WriteLine("DWG To PDF.pc3虚拟打印机正在打印中");
}
else
{
Console.WriteLine("DWG To PDF.pc3虚拟打印机没有正在打印");
}
```
上述代码首先指定了虚拟打印机的注册表路径,然后通过`Registry.GetValue`方法获取`Printing`键对应的值,该值为1表示正在打印,0表示没有正在打印。最后根据获取到的值输出相应的信息。
相关问题
C# 通过注册表判断"DWG To PDF.pc3"打印机是否正在打印中
可以通过读取注册表来判断"DWG To PDF.pc3"打印机是否正在打印中。具体步骤如下:
1. 打开注册表:可以使用Registry类,代码如下:
```
using Microsoft.Win32;
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Print\Printers\DWG To PDF.pc3\");
```
2. 判断打印机状态:可以通过读取"PrinterStatus"键值来判断打印机状态,代码如下:
```
object status = key.GetValue("PrinterStatus");
if (status != null && (int)status == 4)
{
Console.WriteLine("正在打印中");
}
else
{
Console.WriteLine("未在打印中");
}
```
其中,"PrinterStatus"键值的值为4表示打印机正在打印中。
C# CAD2010 AcadApplication判断"DWG To PDF.pc3"打印机是否正在打印中
在C#中,可以使用AutoCAD提供的COM接口来判断"DWG To PDF.pc3"打印机是否正在打印中。具体步骤如下:
1. 首先,获取AutoCAD的AcadApplication对象。可以使用以下代码:
```csharp
AcadApplication app = (AcadApplication)Marshal.GetActiveObject("AutoCAD.Application");
```
2. 获取AcadApplication对象中的Plot对象。可以使用以下代码:
```csharp
AcadPlot plot = app.ActiveDocument.Plot;
```
3. 判断"DWG To PDF.pc3"打印机是否正在打印中。可以使用以下代码:
```csharp
foreach (AcadPlotConfiguration conf in plot.Configurations)
{
if (conf.CanonicalMediaName.Contains("DWG To PDF.pc3"))
{
if (conf.Status == AcPlotStatus.acPlotStatusInProgress)
{
// "DWG To PDF.pc3"打印机正在打印中
}
else
{
// "DWG To PDF.pc3"打印机没有在打印
}
break;
}
}
```
其中,CanonicalMediaName属性表示打印机名称,Status属性表示打印状态。如果Status为acPlotStatusInProgress,则表示打印机正在打印中。如果Status为acPlotStatusNotStarted或acPlotStatusError,则表示打印机没有在打印。