AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: База знаний и проекты
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.02.2009, 07:18   #1  
petergunn is offline
petergunn
Участник
 
118 / 274 (10) ++++++
Регистрация: 30.08.2005
Адрес: Tyumen
Цитата:
Сообщение от ivas Посмотреть сообщение
погуглил... пишут что эт действительно порт, информация храниться гдето в реестре)
Похоже что информация о портах есть в этих ветках реестра:
Цитата:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\PrinterPorts
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices
Цитата:
Сообщение от KingPeas Посмотреть сообщение
Вот только чистые названия принтеров эксель не кушает, ему нужно свое с указанием всех (Ne01, (LPT1 и т.д.
А получить список принтеров можно и через PrintJobSettings;
Набросал небольшой job получения списка принтеров (и портов из реестра) :
X++:
static void jbPrinterListByPrintJobSettings(Args _args)
{

    PrintJobSettings    printJobSettings    ;
    Name                printerName ;

    Counter             printerNum  ;
    Counter             printerCount;

    TempStr getPrinterPort( Name _printerName )
    {
        int     regKeyHandle    ;
        TempStr printerPorts    ;

        #WinAPI
        // #define.RegistryKey( 'Software\\Microsoft\\Windows NT\\CurrentVersion\\Devices' )
        #define.RegistryKey( 'Software\\Microsoft\\Windows NT\\CurrentVersion\\PrinterPorts' )
        ;

        regKeyHandle = WinAPI::regOpenKey( #HKEY_CURRENT_USER, #RegistryKey, #KEY_READ ) ;
        [ printerPorts ] = WinAPI::regGetValue( regKeyHandle, _printerName ) ;
        WinAPI::regCloseKey( regKeyHandle );

        return strline( strreplace( printerPorts, ',', '\n' ), 1 ) ;
    }
    ;

    printJobSettings = new printJobSettings() ;
    printerCount = printJobSettings.getNumberOfPrinters() ;
    setPrefix( strfmt( "Number of printers: %1, default device: %2", printerCount, printJobSettings.deviceName() ) ) ;

    for( printerNum =1; printerNum <=printerCount; printerNum++ )
    {
        printerName = printJobSettings.getPrinter( printerNum ) ;
        info( strfmt( "%1 (%2)", printerName, getPrinterPort( printerName ) ) ) ;
    }
}
Получившийся результат:
Изображения
 
За это сообщение автора поблагодарили: aidsua (1), KingPeas (1).
Теги
excel, принтер

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Исследование скорости экспорта данных из Axapta в Excel (коллективный эксперимент) Gustav DAX: База знаний и проекты 79 13.02.2014 13:18
gl00mie: Read Excel table via ADO Blog bot DAX Blogs 2 09.04.2010 08:32
[Excel] - Несколько версий Excel на машине клиента Андре DAX: Программирование 11 07.08.2007 13:45
Вызов Item() для коллекций Excel Владимир Максимов DAX: Программирование 15 17.08.2006 19:47
Аксапта и Excel Swetik DAX: Программирование 3 01.03.2004 10:12

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 09:48.