Lazarus: Написать функцию вывода списка подключенных usb-принтеров

5 000 руб. за проект
26 марта 2021, 17:28 • 2 отклика • 28 просмотров
Необходим рабочий код функции вывода списка подключенных usb-принтеров и значений их interfaceDetail.DevicePath.
Например :
1. "Pantum P2200 Series" | "\\?\usb#vid_232b&pid_1810#ca3x162829#{28d78fad-5a12-11d1-ae5b-0000f803a8c2}"
2. "HP LaserJet 1810" | "\\?\usb#vid_111a&pid_1999#ca3x162849#{28d78fad-5a12-11d1-ae5b-0000f803a8c2}"

Необходима совместимость с 32х и 64х-битными системами Windows.
Желательно использовать Windows API cfgmgr32.dll и SetupApi.dll с помощью функций:
CM_Get_Child,
CM_Get_DevNode_Registry_Property,
SetupDiGetClassDevsA,
SetupDiGetDeviceInterfaceDetailA,
SetupDiEnumDeviceInterfaces,
SetupDiDestroyDeviceInfoList.

GUID_DEVINTERFACE_USBPRINT:TGuid = '{28d78fad-5a12-11d1-ae5b-0000f803a8c2}';

Предоставление исходного кода обязательно, совместимость среды разработки Lazarus 2.0.12.