我想删除映射的打印机和P /调用以下
[DllImport("winspool.drv", EntryPoint = "DeletePrinterConnection", CharSet = CharSet.Auto, SetLastError = true)]
private static extern int DeletePrinterConnection(string pName);
当我只使用打印机名称或(服务器上的PrinterName)时,我一直得到打印机名称无效。
这是什么名称作为输入?
更新1
[DllImport("winspool.drv", EntryPoint = "DeletePrinterConnection")]
private static extern int DeletePrinterConnectionA(string pName);
DeletePrinterConnectionW(Unicode)和DeletePrinterConnectionA(ANSI)
int r = DeletePrinterConnectionA(printer);
if (!r.Equals(0))
{
throw new Win32Exception(Marshal.GetLastWin32Error());
}
这会引发操作成功完成 - 但它没有完成,打印机仍在那里。
返回值
如果函数成功,则返回值为非零值。 如果函数失败,则返回值为零。
答案 0 :(得分:0)
答案 1 :(得分:0)
想出来,因为它是一个映射的打印机,它所期望的名称是
\\server\printer name