2010-01-27 1 views
1

В Excel есть метод PrintOut, который печатает материал. Он принимает имя принтера в качестве параметра, и это имя принтера - это не только имя системного принтера, но и комбинация имени системного принтера и порта, к которому подключен принтер.Excel: Как получить имя, не зависящее от языкового стандарта?

.PrintOut ActivePrinter:="MyPrinter" & " on " & "Ne00:" 

Если вы указали только системное имя, Excel не найдет его и не распечатает.

Отметьте, что " on " шт. Это фактическое английское слово «on», которое делает «имя принтера Excel» удобным для человека.

Проблема в том, что эта небольшая часть отличается от каждой локализованной версии Excel. Поэтому код, который хочет составить истинное имя «excel printer name», должен включать огромный switch, где все возможные локали Excel будут перечислены с соответствующим переводом «on». У меня даже нет такого списка. Но я хотел бы получить его или услышать о способе выяснить эту штуку на лету. Свойство Application.International, кажется, не содержит ответа.

ответ

0

Этот парень использует записи реестра в

\ HKEY_CURRENT_USER \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Devices \

http://www.dailydoseofexcel.com/archives/2008/04/05/getting-the-printer-port/

+0

Я знаю, как получить порт принтера. Этот парень делает это неправильно, кстати. Правильным способом, по соображениям совместимости, является использование функции GetProfileString. Но мой вопрос касается разных проблем. – GSerg

+0

Извините, я неправильно понял вопрос. –

Смежные вопросы