Выгрузка из реестра контейнера КриптоПро CSP
Если контейнеры требуется перенести вручную на другой ПК, выгрузите ветку реестра. Для этого откройте редактор реестра regedit.exe и перейти в необходимую ветку. В том случае, когда в качестве криптопровайдера используется СКЗИ КриптоПро CSP, а в качестве считывателя используется реестр, контейнеры хранятся в ветке реестра:
- В x32 операционных системах контейнеры находятся в ветке: HKEY_LOCAL_MACHINE\SOFTWARE\CryptoPro\Settings\Users\\Keys\
- В x64 операционных системах контейнеры находятся в ветке: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\CryptoPro\Settings\Users\\Keys\
Выберите папку Keys и выполните её экспорт.
Импорт контейнера в реестр
На том рабочем месте, куда нужно импортировать контейнеры, проверьте разрядность ОС и узнайте SID пользователя.
SID — Идентификатор безопасности пользователя ОС Windows. У каждого пользователя Windows свой SID. Для того, чтобы узнать SID пользователя запустите ОС Windows под его учетной записью, после чего перейдите в командную строку (Пуск → Выполнить → cmd) и введите команду whoami/user. Команда отобразит основные сведения о текущем пользователе, включая его SID
Пример SID: S-1-5-12-12345678-1234567890-1234567890-1234.
После этого откройте с помощью блокнота выгруженный файл реестра в формате .reg, измените SID и, если необходимо, путь к конечной ветке.
После этого загрузите ветку реестра в систему. Для импорта сохраненного файла реестра дважды кликните левой кнопкой мыши по файлу с расширением REG или воспользуйтесь альтернативным способом:
- Откройте редактор реестра (regedit.exe).
- В меню Файл выберите пункт Импортировать.
- В открывшемся окне найдите файл для импорта, выделите его и нажмите кнопку Открыть.
Для использования электронной подписи на другом ПК, на нем должен быть установлен СКЗИ КриптоПро CSP, после добавления ветки реестра необходимо установить сертификат.
Функция ChangeDisplaySettingsExW (winuser.h)
Функция ChangeDisplaySettingsEx изменяет параметры указанного устройства отображения на указанный режим графики.
Примечание Приложения, предназначенные для Windows 8 и более поздних версий, больше не могут запрашивать или задавать режимы отображения менее 32 бит на пиксель (bpp); Эти операции завершатся ошибкой. Эти приложения имеют манифест совместимости, предназначенный для Windows 8. Windows 8 по-прежнему поддерживает 8- и 16-разрядные цветовые режимы для классических приложений, созданных без манифеста Windows 8; Windows 8 эмулирует эти режимы, но по-прежнему работает в 32-разрядном цветовом режиме.
Синтаксис
LONG ChangeDisplaySettingsExW( [in] LPCWSTR lpszDeviceName, [in] DEVMODEW *lpDevMode, HWND hwnd, [in] DWORD dwflags, [in] LPVOID lParam );
Параметры
Указатель на строку, завершающуюся нулевым значением, которая указывает устройство отображения, режим графики которого изменится. Допустимы только имена устройств, возвращенные EnumDisplayDevices . Дополнительные сведения об именах, связанных с этими устройствами отображения, см. в разделе EnumDisplayDevices .
Параметр lpszDeviceName может иметь значение NULL. Значение NULL указывает устройство отображения по умолчанию. Устройство по умолчанию можно определить, вызвав EnumDisplayDevices и проверив флаг DISPLAY_DEVICE_PRIMARY_DEVICE.
Указатель на структуру DEVMODE , описывающую новый режим графики. Если lpDevMode имеет значение NULL, для параметра отображения будут использоваться все текущие значения в реестре. Передача null для параметра lpDevMode и 0 для параметра dwFlags — это самый простой способ вернуться в режим по умолчанию после изменения динамического режима.
Член dmSize должен быть инициализирован размером в байтах структуры DEVMODE . Член dmDriverExtra должен быть инициализирован, чтобы указать количество байтов данных частного драйвера в соответствии со структурой DEVMODE . Кроме того, можно использовать любой из следующих элементов структуры DEVMODE .
| Член | Значение |
|---|---|
| dmBitsPerPel | Бит на пиксель |
| dmPelsWidth | Ширина пикселей |
| dmPelsHeight | Высота пикселей |
| dmDisplayFlags | Флаги режима |
| dmDisplayFrequency | Частота режима |
| dmPosition | Положение устройства в конфигурации с несколькими мониторами. |
Помимо использования одного или нескольких предыдущих элементов DEVMODE , необходимо также задать одно или несколько следующих значений в элементе dmFields , чтобы изменить параметры отображения.
| Значение | Значение |
|---|---|
| DM_BITSPERPEL | Используйте значение dmBitsPerPel . |
| DM_PELSWIDTH | Используйте значение dmPelsWidth . |
| DM_PELSHEIGHT | Используйте значение dmPelsHeight . |
| DM_DISPLAYFLAGS | Используйте значение dmDisplayFlags . |
| DM_DISPLAYFREQUENCY | Используйте значение dmDisplayFrequency . |
| DM_POSITION | Используйте значение dmPosition . |
Защищены; значение должно иметь значение NULL.
Указывает, как следует изменить графический режим. Этот параметр может принимать одно из указанных ниже значений.
| Значение | Значение |
|---|---|
| 0 | Режим графики для текущего экрана будет динамически изменен. |
| CDS_FULLSCREEN | Режим носит временный характер. |
При переходе на другой рабочий стол и с другого рабочего стола этот режим не будет сброшен.
Указание CDS_TEST позволяет приложению определить, какие графические режимы действительно допустимы, не заставляя систему изменять их.
Если указан CDS_UPDATEREGISTRY и можно динамически изменять графический режим, сведения сохраняются в реестре и возвращаются DISP_CHANGE_SUCCESSFUL. Если динамическое изменение режима графики невозможно, сведения сохраняются в реестре и возвращаются DISP_CHANGE_RESTART.
Если указан CDS_UPDATEREGISTRY и данные не могут быть сохранены в реестре, графический режим не изменяется и возвращается DISP_CHANGE_NOTUPDATED.
Если параметр dwFlagsCDS_VIDEOPARAMETERS,lParam — это указатель на структуру VIDEOPARAMETERS . В противном случае lParam должен иметь значение NULL.
Возвращаемое значение
Функция ChangeDisplaySettingsEx возвращает одно из следующих значений.
| Код возврата | Описание |
|---|---|
| DISP_CHANGE_SUCCESSFUL | Изменение параметров выполнено успешно. |
| DISP_CHANGE_BADDUALVIEW | Изменение параметров не удалось, так как система поддерживает DualView. |
| DISP_CHANGE_BADFLAGS | Передан недопустимый набор флагов. |
| DISP_CHANGE_BADMODE | Режим графики не поддерживается. |
| DISP_CHANGE_BADPARAM | Передан недопустимый параметр. Это может быть недопустимый флаг или сочетание флагов. |
| DISP_CHANGE_FAILED | Драйвер дисплея не выполнил указанный графический режим. |
| DISP_CHANGE_NOTUPDATED | Не удается записать параметры в реестр. |
| DISP_CHANGE_RESTART | Чтобы графический режим работал, компьютер необходимо перезагрузить. |
Комментарии
Чтобы убедиться, что структура DEVMODE , переданная в ChangeDisplaySettingsEx , является допустимой и содержит только значения, поддерживаемые драйвером отображения, используйте DEVMODE , возвращаемый функцией EnumDisplaySettings .
При добавлении монитора дисплея в систему с несколькими мониторами программными средствами задайте для DEVMODE.dmFields значение DM_POSITION и укажите позицию (в DEVMODE.dmPosition) добавляемого монитора, которая находится рядом по крайней мере с одним пикселем области отображения существующего монитора. Чтобы отключить монитор, задайте для параметра DEVMODE.dmFields значение DM_POSITION но установите для devmode.dmPelsWidth и DEVMODE.dmPelsHeight значение 0. Дополнительные сведения см. в разделе Несколько мониторов отображения.
При динамическом изменении режима отображения WM_DISPLAYCHANGE сообщение отправляется всем запущенным приложениям со следующими параметрами сообщения.
| Параметры | Значение |
|---|---|
| wParam | Новые биты на пиксель |
| LOWORD(lParam) | Новая ширина пикселей |
| HIWORD(lParam) | Новая высота пикселей |
Чтобы изменить параметры для нескольких дисплеев одновременно, сначала вызовите ChangeDisplaySettingsEx для каждого устройства по отдельности, чтобы обновить реестр без применения изменений. Затем снова вызовите ChangeDisplaySettingsEx с устройством NULL , чтобы применить изменения. Например, чтобы изменить параметры для двух дисплеев, сделайте следующее:
ChangeDisplaySettingsEx (lpszDeviceName1, lpDevMode1, NULL, (CDS_UPDATEREGISTRY | CDS_NORESET), NULL); ChangeDisplaySettingsEx (lpszDeviceName2, lpDevMode2, NULL, (CDS_UPDATEREGISTRY | CDS_NORESET), NULL); ChangeDisplaySettingsEx (NULL, NULL, NULL, 0, NULL);
Виртуализация DPI
Этот API не участвует в виртуализации DPI. Предоставленные входные данные всегда относятся к физическим пикселям и не связаны с вызывающим контекстом.
Заголовок winuser.h определяет ChangeDisplaySettingsEx в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
| Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
| Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
| Целевая платформа | Windows |
| Header | winuser.h (включая Windows.h) |
| Библиотека | User32.lib |
| DLL | User32.dll |
| Набор API | ext-ms-win-ntuser-sysparams-ext-l1-1-1 (представлено в Windows 10 версии 10.0.14393) |
Структура DEVMODEA (wingdi.h)
Структура данных DEVMODE содержит сведения об инициализации и среде принтера или устройства отображения.
Синтаксис
typedef struct _devicemodeA < BYTE dmDeviceName[CCHDEVICENAME]; WORD dmSpecVersion; WORD dmDriverVersion; WORD dmSize; WORD dmDriverExtra; DWORD dmFields; union < struct < short dmOrientation; short dmPaperSize; short dmPaperLength; short dmPaperWidth; short dmScale; short dmCopies; short dmDefaultSource; short dmPrintQuality; >DUMMYSTRUCTNAME; POINTL dmPosition; struct < POINTL dmPosition; DWORD dmDisplayOrientation; DWORD dmDisplayFixedOutput; >DUMMYSTRUCTNAME2; > DUMMYUNIONNAME; short dmColor; short dmDuplex; short dmYResolution; short dmTTOption; short dmCollate; BYTE dmFormName[CCHFORMNAME]; WORD dmLogPixels; DWORD dmBitsPerPel; DWORD dmPelsWidth; DWORD dmPelsHeight; union < DWORD dmDisplayFlags; DWORD dmNup; >DUMMYUNIONNAME2; DWORD dmDisplayFrequency; DWORD dmICMMethod; DWORD dmICMIntent; DWORD dmMediaType; DWORD dmDitherType; DWORD dmReserved1; DWORD dmReserved2; DWORD dmPanningWidth; DWORD dmPanningHeight; > DEVMODEA, *PDEVMODEA, *NPDEVMODEA, *LPDEVMODEA;
Члены
Массив символов с нулем, указывающий «понятное» имя принтера или дисплея; Например, «PCL/HP LaserJet» в случае PCL/HP LaserJet. Эта строка является уникальной среди драйверов устройств. Обратите внимание, что это имя может быть усечено, чтобы поместиться в массив dmDeviceName .
Номер версии спецификации данных инициализации, на которой основана структура. Чтобы убедиться, что для любой операционной системы используется правильная версия, используйте DM_SPECVERSION.
Номер версии драйвера, назначенный разработчиком драйвера.
Указывает размер (в байтах) структуры DEVMODE , не включая частные данные драйвера, которые могут следовать за открытыми элементами структуры. Задайте этому члену значение , sizeof (DEVMODE) чтобы указать версию используемой структуры DEVMODE .
Содержит количество байтов частных данных драйвера, которые соответствуют этой структуре. Если драйвер устройства не использует сведения, относящиеся к устройству, установите для этого элемента значение 0.
Указывает, были ли инициализированы определенные элементы структуры DEVMODE . Если элемент инициализирован, задается соответствующий ему бит, в противном случае бит становится ясным. Драйвер поддерживает только те члены DEVMODE , которые подходят для технологии принтера или дисплея.
Следующие значения определены и перечислены здесь с соответствующими элементами структуры.
| Значение | Элемент структуры |
|---|---|
| DM_ORIENTATION | dmOrientation |
| DM_PAPERSIZE | dmPaperSize |
| DM_PAPERLENGTH | dmPaperLength |
| DM_PAPERWIDTH | dmPaperWidth |
| DM_SCALE | dmScale |
| DM_COPIES | dmCopies |
| DM_DEFAULTSOURCE | dmDefaultSource |
| DM_PRINTQUALITY | dmPrintQuality |
| DM_POSITION | dmPosition |
| DM_DISPLAYORIENTATION | dmDisplayOrientation |
| DM_DISPLAYFIXEDOUTPUT | dmDisplayFixedOutput |
| DM_COLOR | dmColor |
| DM_DUPLEX | dmDuplex |
| DM_YRESOLUTION | dmYResolution |
| DM_TTOPTION | dmTTOption |
| DM_COLLATE | dmCollate |
| DM_FORMNAME | dmFormName |
| DM_LOGPIXELS | dmLogPixels |
| DM_BITSPERPEL | dmBitsPerPel |
| DM_PELSWIDTH | dmPelsWidth |
| DM_PELSHEIGHT | dmPelsHeight |
| DM_DISPLAYFLAGS | dmDisplayFlags |
| DM_NUP | dmNup |
| DM_DISPLAYFREQUENCY | dmDisplayFrequency |
| DM_ICMMETHOD | dmICMMethod |
| DM_ICMINTENT | dmICMIntent |
| DM_MEDIATYPE | dmMediaType |
| DM_DITHERTYPE | dmDitherType |
| DM_PANNINGWIDTH | dmPanningWidth |
| DM_PANNINGHEIGHT | dmPanningHeight |
Только для принтеров выбирает ориентацию бумаги. Это может быть DMORIENT_PORTRAIT (1) или DMORIENT_LANDSCAPE (2).
Только для принтеров выбирает размер бумаги для печати. Этот элемент может быть равен нулю, если длина и ширина бумаги задаются элементами dmPaperLength и dmPaperWidth . В противном случае члену dmPaperSize можно задать значение для конкретного устройства, большее или равное DMPAPER_USER или одно из следующих предопределенных значений.
| Значение | Значение |
|---|---|
| DMPAPER_LETTER | Буква, 8 1/2- на 11 дюймов |
| DMPAPER_LEGAL | Юридический, 8 1/2- на 14 дюймов |
| DMPAPER_9X11 | Лист 9 на 11 дюймов |
| DMPAPER_10X11 | Лист 10 на 11 дюймов |
| DMPAPER_10X14 | Лист 10 на 14 дюймов |
| DMPAPER_15X11 | Лист 15 на 11 дюймов |
| DMPAPER_11X17 | Лист 11 на 17 дюймов |
| DMPAPER_12X11 | Лист 12 на 11 дюймов |
| DMPAPER_A2 | Лист A2, 420 x 594 миллиметра |
| DMPAPER_A3 | Лист A3, 297 х 420 миллиметров |
| DMPAPER_A3_EXTRA | A3 Extra 322 x 445-миллиметров |
| DMPAPER_A3_EXTRA_TRAVERSE | A3 Extra Transverse 322 x 445-миллиметров |
| DMPAPER_A3_ROTATED | Лист A3, повернутый 420 на 297 миллиметров |
| DMPAPER_A3_TRAVERSE | A3 Поперечная 297 x 420 миллиметров |
| DMPAPER_A4 | Лист A4, 210 на 297 миллиметров |
| DMPAPER_A4_EXTRA | Лист A4, 9,27 x 12,69 дюйма |
| DMPAPER_A4_PLUS | A4 Plus 210 x 330 миллиметров |
| DMPAPER_A4_ROTATED | Лист A4, повернутый, 297 на 210 миллиметров |
| DMPAPER_A4SMALL | A4 маленький лист, 210 на 297 миллиметров |
| DMPAPER_A4_TRANSVERSE | A4 Поперечная 210 x 297 миллиметров |
| DMPAPER_A5 | Лист A5, 148 на 210 миллиметров |
| DMPAPER_A5_EXTRA | A5 Extra 174 x 235 миллиметров |
| DMPAPER_A5_ROTATED | Лист A5, повернутый, 210 на 148 миллиметров |
| DMPAPER_A5_TRANSVERSE | A5 Поперечная 148 x 210 миллиметров |
| DMPAPER_A6 | Лист A6, 105 на 148 миллиметров |
| DMPAPER_A6_ROTATED | Лист A6, повернутый, 148 на 105 миллиметров |
| DMPAPER_A_PLUS | SuperA/A4 227 x 356 миллиметров |
| DMPAPER_B4 | Лист B4, 250 х 354 миллиметра |
| DMPAPER_B4_JIS_ROTATED | B4 (JIS) повернутый лист, 364 на 257 миллиметров |
| DMPAPER_B5 | Лист B5, 182-х 257-миллиметровый лист |
| DMPAPER_B5_EXTRA | B5 (ISO) Extra 201 x 276-миллиметров |
| DMPAPER_B5_JIS_ROTATED | B5 (JIS) повернутый лист, 257 на 182 миллиметра |
| DMPAPER_B6_JIS | Лист B6 (JIS), 128 на 182 миллиметра |
| DMPAPER_B6_JIS_ROTATED | B6 (JIS) повернутый лист, 182 на 128 миллиметров |
| DMPAPER_B_PLUS | SuperB/A3 305 x 487 миллиметров |
| DMPAPER_CSHEET | Лист C, 17 х 22 дюйма |
| DMPAPER_DBL_JAPANESE_POSTCARD | Двойная японская открытка, 200 на 148 миллиметров |
| DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED | Двойная японская открытка повернутая, 148- на 200 миллиметров |
| DMPAPER_DSHEET | Лист D, 22 х 34 дюйма |
| DMPAPER_ENV_9 | #9 Конверт, 3 7/8- на 8 7/8 дюймов |
| DMPAPER_ENV_10 | #10 Конверт, 4 1/8- на 9 1/2 дюйма |
| DMPAPER_ENV_11 | #11 Конверт, 4 1/2 — 10 3/8 дюймов |
| DMPAPER_ENV_12 | #12 Конверт, 4 3/4- на 11 дюймов |
| DMPAPER_ENV_14 | #14 Конверт, 5- х 11 1/2 дюйма |
| DMPAPER_ENV_C5 | Конверт C5, 162 на 229 миллиметров |
| DMPAPER_ENV_C3 | Конверт C3, 324 х 458 миллиметров |
| DMPAPER_ENV_C4 | Конверт C4, 229 х 324 миллиметра |
| DMPAPER_ENV_C6 | Конверт C6, 114 на 162 миллиметра |
| DMPAPER_ENV_C65 | Конверт C65, 114 х 229 миллиметров |
| DMPAPER_ENV_B4 | Конверт B4, 250 х 353 миллиметра |
| DMPAPER_ENV_B5 | Конверт B5, 176 на 250 миллиметров |
| DMPAPER_ENV_B6 | Конверт B6, 176 на 125 миллиметров |
| DMPAPER_ENV_DL | Конверт DL, 110 х 220 миллиметров |
| DMPAPER_ENV_INVITE | Конверт-приглашение 220 x 220 мм |
| DMPAPER_ENV_ITALY | Конверт Италии, 110- х 230 миллиметров |
| DMPAPER_ENV_MONARCH | Конверт Monarch, 3 7/8- х 7 1/2 дюйма |
| DMPAPER_ENV_PERSONAL | 6 конвертов 3/4, 3 5/8- 6 1/2 дюйма |
| DMPAPER_ESHEET | Лист E, 34 х 44 дюйма |
| DMPAPER_EXECUTIVE | Исполнительный, 7 1/4- х 10 1/2 дюйма |
| DMPAPER_FANFOLD_US | US Std Fanfold, 14 7/8- х 11-дюймов |
| DMPAPER_FANFOLD_STD_GERMAN | Немецкий Std Fanfold, 8 1/2- 12 дюймов |
| DMPAPER_FANFOLD_LGL_GERMAN | Немецкий юридический вентилятор, 8 — на 13 дюймов |
| DMPAPER_FOLIO | Фолио, 8 1/2- х 13-дюймовая бумага |
| DMPAPER_ISO_B4 | B4 (ISO) 250 х 353 миллиметров бумаги |
| DMPAPER_JAPANESE_POSTCARD | Японская открытка, 100 на 148 миллиметров |
| DMPAPER_JAPANESE_POSTCARD_ROTATED | Японская открытка повернутая, 148- х 100 миллиметров |
| DMPAPER_JENV_CHOU3 | Японский конверт Chou #3 |
| DMPAPER_JENV_CHOU3_ROTATED | Японский конверт Chou #3, повернутый |
| DMPAPER_JENV_CHOU4 | Японский конверт Chou #4 |
| DMPAPER_JENV_CHOU4_ROTATED | Японский конверт Chou #4, повернутый |
| DMPAPER_JENV_KAKU2 | Японский конверт Kaku #2 |
| DMPAPER_JENV_KAKU2_ROTATED | Японский конверт Каку #2, повернутый |
| DMPAPER_JENV_KAKU3 | Японский конверт Kaku #3 |
| DMPAPER_JENV_KAKU3_ROTATED | Японский конверт Kaku #3, повернутый |
| DMPAPER_JENV_YOU4 | Японский конверт Вы #4 |
| DMPAPER_JENV_YOU4_ROTATED | Японский конверт вы #4 повернуты |
| DMPAPER_LAST | DMPAPER_PENV_10_ROTATED |
| DMPAPER_LEDGER | Реестр, 17 на 11 дюймов |
| DMPAPER_LEGAL_EXTRA | Legal Extra 9 1/2 x 15 дюймов. |
| DMPAPER_LETTER_EXTRA | Letter Extra 9 1/2 x 12 дюймов. |
| DMPAPER_LETTER_EXTRA_TRANSVERSE | Letter Extra Transverse 9 1/2 x 12 дюймов. |
| DMPAPER_LETTER_ROTATED | Повернутая буква 11 на 8 1/2 дюйма |
| DMPAPER_LETTERSMALL | Буква маленькая, 8 1/2- х 11 дюймов |
| DMPAPER_LETTER_TRANSVERSE | Поперечные буквы 8 1/2 x 11 дюймов |
| DMPAPER_NOTE | Обратите внимание, 8 1/2- 11 дюймов |
| DMPAPER_P16K | PRC 16K, 146- х 215 миллиметров |
| DMPAPER_P16K_ROTATED | PRC 16K вращаемый, 215-х 146-миллиметров |
| DMPAPER_P32K | PRC 32K, 97 х 151 миллиметров |
| DMPAPER_P32K_ROTATED | PRC 32K вращаемый, 151 на 97 миллиметров |
| DMPAPER_P32KBIG | PRC 32K (Big) 97 х 151 миллиметров |
| DMPAPER_P32KBIG_ROTATED | PRC 32K (Большой) вращаемый, 151 на 97 миллиметров |
| DMPAPER_PENV_1 | Конверт КНР No 1, 102- х 165 миллиметров |
| DMPAPER_PENV_1_ROTATED | Конверт КНР No 1 с повернутой, 165 на 102 миллиметра |
| DMPAPER_PENV_2 | Конверт PRC No 2, 102- х 176 миллиметров |
| DMPAPER_PENV_2_ROTATED | Конверт КНР No 2 повернутый, 176 на 102 миллиметра |
| DMPAPER_PENV_3 | Конверт PRC No 3, 125- х 176 миллиметров |
| DMPAPER_PENV_3_ROTATED | Конверт PRC No 3 повернутый, 176- х 125 миллиметров |
| DMPAPER_PENV_4 | Конверт PRC No 4, 110- х 208-миллиметров |
| DMPAPER_PENV_4_ROTATED | Конверт КНР No 4 повернутый, 208 на 110 миллиметров |
| DMPAPER_PENV_5 | Конверт КНР No 5, 110- х 220 миллиметров |
| DMPAPER_PENV_5_ROTATED | Конверт PRC No 5 повернутый, 220 на 110 миллиметров |
| DMPAPER_PENV_6 | Конверт PRC No 6, 120- х 230 миллиметров |
| DMPAPER_PENV_6_ROTATED | Конверт PRC No 6 повернутый, 230 на 120 миллиметров |
| DMPAPER_PENV_7 | Конверт PRC No 7, 160- х 230 миллиметров |
| DMPAPER_PENV_7_ROTATED | Конверт КНР No 7 повернутый, 230 на 160 миллиметров |
| DMPAPER_PENV_8 | Конверт КНР No 8, 120- х 309 миллиметров |
| DMPAPER_PENV_8_ROTATED | Конверт КНР No 8 повернутый, 309 на 120 миллиметров |
| DMPAPER_PENV_9 | Конверт PRC No 9, 229- х 324-миллиметров |
| DMPAPER_PENV_9_ROTATED | Конверт КНР No 9 повернутый, 324-х 229 миллиметров |
| DMPAPER_PENV_10 | Конверт PRC No 10, 324- х 458 миллиметров |
| DMPAPER_PENV_10_ROTATED | Конверт PRC No 10 вращаемый, 458-х 324-миллиметров |
| DMPAPER_QUARTO | Кварто, 215- х 275-миллиметровая бумага |
| DMPAPER_STATEMENT | Оператор, 5 1/2- 8 1/2 дюйма |
| DMPAPER_TABLOID | Tabloid, 11- х 17-дюймов |
| DMPAPER_TABLOID_EXTRA | Tabloid, 11,69 x 18 дюймов |
Только для принтеров переопределяет длину бумаги, указанной элементом dmPaperSize , либо для пользовательских размеров бумаги, либо для устройств, таких как принтеры с точками матрицы, которые могут печатать на странице произвольной длины. Эти значения, наряду со всеми другими значениями в этой структуре, определяющими физическую длину, находятся в десятых миллиметрах.
Только для принтеров переопределяет ширину бумаги, указанной элементом dmPaperSize .
Указывает коэффициент масштабирования выводных данных. Видимый размер страницы масштабируется с физического размера страницы в коэффициенте dmScale /100. Например, страница размера буквы со значением dmScale 50 будет содержать столько данных, сколько страница размером 17 х 22 дюйма, так как выходной текст и графика будут вдвое меньше исходной высоты и ширины.
Выбирает количество печатных копий, если устройство поддерживает многостраничные копии.
Указывает источник бумаги. Чтобы получить список доступных источников бумаги для принтера, используйте функцию DeviceCapabilities с флагом DC_BINS.
Этот элемент может быть одним из следующих значений или значением для конкретного устройства, которое больше или равно DMBIN_USER.
Задает разрешение принтера. Существует четыре предопределенных значения, независимых от устройства:
Если указано положительное значение, оно указывает количество точек на дюйм и, следовательно, зависит от устройства.
Только для устройств отображения — структура POINTL , указывающая позиционные координаты устройства отображения, ссылающиеся на область рабочего стола. Основное устройство отображения всегда находится в координатах (0,0).
Только для устройств отображения — ориентация, с которой должны быть представлены изображения. Если DM_DISPLAYORIENTATION не задано, этот элемент должен быть равен нулю. Если задано DM_DISPLAYORIENTATION, этот элемент должен иметь одно из следующих значений.
| Значение | Значение |
|---|---|
| DMDO_DEFAULT | Ориентация дисплея — это естественная ориентация устройства отображения; он должен использоваться по умолчанию. |
| DMDO_90 | Ориентация дисплея поворачивается на 90 градусов (измеряется по часовой стрелке) от DMDO_DEFAULT. |
| DMDO_180 | Ориентация дисплея поворачивается на 180 градусов (измеряется по часовой стрелке) от DMDO_DEFAULT. |
| DMDO_270 | Ориентация дисплея поворачивается на 270 градусов (измеряется по часовой стрелке) от DMDO_DEFAULT. |
Чтобы определить, является ли ориентация отображения книжной или альбомной, проверка соотношение dmPelsWidth и dmPelsHeight.
Windows 2000: Не поддерживается.
Только для устройств отображения с фиксированным разрешением, как дисплей представляет режим низкого разрешения на дисплее с более высоким разрешением. Например, если разрешение устройства дисплея фиксированное на уровне 1024 x 768 пикселей, но его режим установлен в 640 x 480 пикселей, устройство может отображать изображение размером 640 x 480 где-то в интерьере экрана 1024 x 768 пикселей или растянуть изображение размером 640 x 480, чтобы заполнить большее пространство экрана. Если DM_DISPLAYFIXEDOUTPUT не задано, этот элемент должен быть равен нулю. Если задано DM_DISPLAYFIXEDOUTPUT, этот элемент должен иметь одно из следующих значений.
| Значение | Значение |
|---|---|
| DMDFO_DEFAULT | Значение по умолчанию для дисплея. |
| DMDFO_CENTER | Изображение с низким разрешением выравлируется по центру в большом пространстве экрана. |
| DMDFO_STRETCH | Изображение с низким разрешением растягивается для заполнения большего пространства экрана. |
Windows 2000: Не поддерживается.
Переключается между цветом и монохромным цветом на цветных принтерах. Допустимы следующие значения:
- DMCOLOR_COLOR
- DMCOLOR_MONOCHROME
Выбирает дуплексную или двустороннюю печать для принтеров, способных к дуплексной печати. Ниже приведены возможные значения.
| Значение | Значение |
|---|---|
| DMDUP_SIMPLEX | Обычная (недуплексная) печать. |
| DMDUP_HORIZONTAL | Привязка с коротким краем, то есть длинный край страницы является горизонтальным. |
| DMDUP_VERTICAL | Привязка с длинным краем, то есть длинный край страницы является вертикальным. |
Указывает разрешение принтера по Y в точках на дюйм. Если принтер инициализирует этот элемент, член dmPrintQuality задает разрешение принтера в точках на дюйм.
Указывает способ печати шрифтов TrueType. Этот элемент может быть одним из следующих значений.
| Значение | Значение |
|---|---|
| DMTT_BITMAP | Выводит шрифты TrueType в виде графики. Это действие по умолчанию для принтеров точечной матрицы. |
| DMTT_DOWNLOAD | Загружает шрифты TrueType в виде мягких шрифтов. Это действие по умолчанию для Hewlett-Packard принтеров, использующих язык управления принтерами (PCL). |
| DMTT_DOWNLOAD_OUTLINE | Загружает шрифты TrueType в виде мягких шрифтов структуры. |
| DMTT_SUBDEV | Заменяет шрифты устройства шрифтами TrueType. Это действие по умолчанию для принтеров PostScript. |
Указывает, следует ли использовать параметры сортировки при печати нескольких копий. (Этот элемент игнорируется, если драйвер принтера не указывает поддержку параметров сортировки, задав члену dmFields значение DM_COLLATE.) Этот элемент может быть одним из следующих значений.
| Значение | Значение |
|---|---|
| DMCOLLATE_TRUE | Сортировка при печати нескольких копий. |
| DMCOLLATE_FALSE | Не выполнять сортировку при печати нескольких копий. |
Массив символов с нулем, указывающий имя используемой формы; Например, «Letter» или «Legal». Полный набор имен можно получить с помощью функции EnumForms .
Количество пикселей на логический дюйм. Драйверы принтера не используют этот элемент.
Задает разрешение цвета (в битах на пиксель) устройства отображения (например, 4 бита для 16 цветов, 8 битов для 256 цветов или 16 битов для 65 536 цветов). Драйверы отображения используют этот элемент, например, в функции ChangeDisplaySettings . Драйверы принтера не используют этот элемент.
Задает ширину видимой поверхности устройства (в пикселях). Драйверы отображения используют этот элемент, например, в функции ChangeDisplaySettings . Драйверы принтера не используют этот элемент.
Указывает высоту видимой поверхности устройства в пикселях. Драйверы отображения используют этот элемент, например, в функции ChangeDisplaySettings . Драйверы принтера не используют этот элемент.
Указывает режим отображения устройства. Этот элемент может быть сочетанием следующих значений.
| Значение | Значение |
|---|---|
| DM_GRAYSCALE | Указывает, что дисплей является нецветным устройством. Если этот флаг не задан, предполагается цвет. Этот флаг больше недействителен. |
| DM_INTERLACED | Указывает, что режим отображения чередуется. Если флаг не задан, предполагается неинтерлейка. |
Драйверы отображения используют этот элемент, например, в функции ChangeDisplaySettings . Драйверы принтера не используют этот элемент.
Указывает, где выполняется NUP. Это может быть один из следующих вариантов.
| Значение | Значение |
|---|---|
| DMNUP_SYSTEM | Диспетчер очереди печати выполняет NUP. |
| DMNUP_ONEUP | Приложение выполняет NUP. |
Указывает частоту в герцах (циклов в секунду) устройства отображения в определенном режиме. Это значение также называется вертикальной частотой обновления устройства отображения. Драйверы отображения используют этот элемент. Он используется, например, в функции ChangeDisplaySettings . Драйверы принтера не используют этот элемент.
При вызове функции EnumDisplaySettings член dmDisplayFrequency может возвращать значение 0 или 1. Эти значения представляют частоту обновления оборудования дисплея по умолчанию. Эта скорость по умолчанию обычно устанавливается переключателями на дисплее карта или системной плате компьютера или программой настройки, которая не использует функции отображения, такие как ChangeDisplaySettings.
Указывает, как обрабатывается ICM. Для приложения, отличного от ICM, этот член определяет, включена или отключена функция ICM. Для приложений ICM система проверяет этот элемент, чтобы определить, как обрабатывать поддержку ICM. Это может быть одно из следующих предопределенных значений или определенное драйвером значение, большее или равное значению DMICMMETHOD_USER.
| Значение | Значение |
|---|---|
| DMICMMETHOD_NONE | Указывает, что ICM отключен. |
| DMICMMETHOD_SYSTEM | Указывает, что ICM обрабатывается Windows. |
| DMICMMETHOD_DRIVER | Указывает, что ICM обрабатывается драйвером устройства. |
| DMICMMETHOD_DEVICE | Указывает, что ICM обрабатывается конечным устройством. |
Драйвер принтера должен предоставить пользовательский интерфейс для настройки этого элемента. Большинство драйверов принтера поддерживают только значение DMICMMETHOD_SYSTEM или DMICMMETHOD_NONE. Драйверы для принтеров PostScript поддерживают все значения.
Указывает, какой метод или намерение сопоставления цветов следует использовать по умолчанию. Этот элемент в первую очередь предназначен для приложений, не относящихся к ICM. Приложения ICM могут устанавливать намерения с помощью функций ICM. Это может быть одно из следующих предопределенных значений или определенное драйвером значение, большее или равное значению DMICM_USER.
| Значение | Значение |
|---|---|
| DMICM_ABS_COLORIMETRIC | Сопоставление цветов должно оптимизироваться в соответствии с точным запрошенным цветом без сопоставления белых точек. Это значение наиболее подходит для использования с правописания. |
| DMICM_COLORIMETRIC | Сопоставление цветов должно оптимизироваться в соответствии с точным запрошенным цветом. Это значение лучше всего подходит для использования с бизнес-логотипами или другими изображениями, когда нужно точное соответствие цвета. |
| DMICM_CONTRAST | Сопоставление цветов должно оптимизироваться для контрастности цветов. Это значение является наиболее подходящим вариантом для отсканированных или фотографических изображений, когда необходимо выполнить поиск. |
| DMICM_SATURATE | Сопоставление цветов должно оптимизироваться для насыщенности цвета. Это значение является наиболее подходящим вариантом для бизнес-графов, когда не рекомендуется использовать мизерные диаграммы. |
Указывает тип печатаемого носителя. Элементом может быть одно из следующих предопределенных значений или определенное драйвером значение, большее или равное значению DMMEDIA_USER.
| Значение | Значение |
|---|---|
| DMMEDIA_STANDARD | Обычная бумага. |
| DMMEDIA_GLOSSY | Глянцевая бумага. |
| DMMEDIA_TRANSPARENCY | Прозрачная пленка. |
Чтобы получить список доступных типов носителей для принтера, используйте функцию DeviceCapabilities с флагом DC_MEDIATYPES.
Указывает, как выполняется дитерирование. Элементом может быть одно из следующих предопределенных значений или определенное драйвером значение, большее или равное значению DMDITHER_USER.
| Значение | Значение |
|---|---|
| DMDITHER_NONE | Никакого дитинга. |
| DMDITHER_COARSE | Смещание грубой кистью. |
| DMDITHER_FINE | Смять с помощью тонкой кисти. |
| DMDITHER_LINEART | Литейное рисование— специальный метод смежения, который создает четко определенные границы между черным, белым и серым масштабированием. Он не подходит для изображений, которые включают непрерывные градации по интенсивности и оттенку, например сканированные фотографии. |
| DMDITHER_GRAYSCALE | Устройство выполняет серое масштабирование. |
Не используется; значение должно быть равно нулю.
Не используется; значение должно быть равно нулю.
Этот элемент должен быть равен нулю.
Этот элемент должен быть равен нулю.
Комментарии
Частные данные драйвера устройства соответствуют общедоступной части структуры DEVMODE . Размер общедоступных данных может отличаться для разных версий структуры. Член dmSize указывает количество байтов общедоступных данных, а член dmDriverExtra — количество байт частных данных.
Заголовок wingdi.h определяет DEVMODE как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
| Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
| Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
| Верхняя часть | wingdi.h (включая Windows.h) |
Поиск в реестре настроек (DEVMODE и прочих) сетевого принтера для разных версий Windows
Доброе время суток!
Если коротко сформулировать вопрос: где в реестре находится DEVMODE по умолчанию для сетевого принтера и где находится копия DEVMODE для сетевого принтера для локального пользователя? Так же интересно какие отличия в пути к DEVMODE в реестре у XP, Vista и Windows 7,8.
Далее в деталях:
Озаботился с поиском в реестре DEVMODE структуры для сетевых принтеров (для локальных и с самой DEVMODE уже разобрался).
В связи с этим возникли вопросы:
1. Копирует ли винда для сетевого принтера в реестре настройки DEVMODE в локального пользователя в HKEY_CURRENT_USER\Printers\Connections\,,PrintServer,PrinterName? (спрашиваю потому что не нашел их там, но возможно просто не инициировал это копирование) или же DEVMODE сетевого принтера копируется в HKEY_CURRENT_USER\Printers\DevModes2\PrinterName?
В Windows 7 настройки по умолчанию DEVMODE для сетевого принтера ищутся в
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Providers\Client Side Rendering Print Provider\S-1-5-21-2499520557-3571156519-1839909518-1144\Printers\Connections\,,PrintServer,PrinterName
где S-1-5-21-2499520557-3571156519-1839909518-1144 это UserId
в связи с этим 2 вопроса
1. Всегда ли в пути присутствует «Client Side Rendering Print Provider» или это имя может изменяться в зависимости от типа подключения?
2. Где искать и как вытаскивать средствами c# или из реестра этот UserId S-1-5-21-2499520557-3571156519-1839909518-1144 дабы подставить его в этот путь?
В Windows XP (к сожалению не имею её чтобы проверить) путь к DEVMODE сетевого принтера иной
этот ключ совпадает с windows 7 HKEY_CURRENT_USER > Printers > Connections
а этого я не нашел в 7ке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Providers\LanMan Print Services\Servers\Printers
в 7ке ключ обрывается на уровне отсутствующего «LanMan Print Services«
п.с. для локальных принтеров на всех версиях винды начиная с XP DevMode для текущего пользователя хранится в HKEY_CURRENT_USER\Printers\DevModePerUser\PrinterName
и если отсутствуе то вытаскивается из
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\PrinterName\Default DevMode
а вот что за ветка эта HKEY_CURRENT_USER\Printers\DevModes2?
В одном из примеров видел что когда меняют DEVMODE для сетевого или локального принтера в этой ветке меняют тоже, из того что нашел в сети это связано с сетевыми принтерами, но что конкретно непонятно. Возможно это как раз та ветка в которой хранится DEVMODE сетевого принтера для локального пользователя?
Просветите пожалуйста или направьте по ссылке. Перерыл уже пол инета, ничего толкового по настройкам сетевых принтеров в реестре не нашел.
- Вопрос задан более трёх лет назад
- 8182 просмотра