Как получить название принтера по умолчанию с сетевым путем

Можете ли вы предоставить выполненный запрос вставки? убедитесь, что значение, которое вы вставляете в столбец, который ссылается на другую таблицу, существует в этой таблице. то есть в вашей таблице примеров, если вы вставляете в таблицу фильмов, DirctorID должно существовать в истории Director.

10
задан sivakumar 25 March 2009 в 09:11
поделиться

2 ответа

Попытайтесь перечислить System.Drawing.Printing.PrinterSettings.InstalledPrinters.

using System.Drawing.Printing;
string GetDefaultPrinter()
{
    PrinterSettings settings = new PrinterSettings();
    foreach (string printer in PrinterSettings.InstalledPrinters)
    {
        settings.PrinterName = printer;
        if (settings.IsDefaultPrinter)
            return printer;
    }
    return string.Empty;
}
35
ответ дан 3 December 2019 в 14:12
поделиться

Это работает не очень хорошо. У меня был лучший опыт работы с большим количеством машин с

DllImport("winspool.drv", CharSet=CharSet.Auto, SetLastError=true)]
public static extern bool GetDefaultPrinter(StringBuilder pszBuffer, ref int size);

StringBuilder dp = new StringBuilder(256);
int size = dp.Capacity;
if (GetDefaultPrinter(dp, ref size)) {
        Console.WriteLine(String.Format("Printer: {0}, name length {1}", dp.ToString().Trim(), size));
} else {
    int rc = GetLastError();
    Console.WriteLine(String.Format("Failed. Size: {0}, error: {1:X}", size, rc));
}
1
ответ дан 3 December 2019 в 14:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: