在UWP中检索默认打印机驱动程序的IP地址

时间:2018-04-24 06:37:24

标签: printing uwp driver ip-address

我们要求在我们的UWP应用程序的控制面板中的默认打印机驱动程序中配置打印机IP地址。

我能够检索" System.DeviceInterface.PrinterPortName "通过获取接口类GUID并传递上面的属性进行检索。

但我无法获得" System.Devices.IpAddress"类似 下面粘贴了PortName的代码。

我非常需要IP地址,因为端口名称是用户的选择,可以修改为删除IP地址的任何名称。

请帮助共享工作代码以使用上述属性或UWP应用程序中的任何其他方式检索IP地址。

下面是端口名称的工作代码,请帮助同样获取同一端口的IP地址。

        string aqsFilter = "System.Devices.InterfaceClassGuid:=\"{0ecef634-6ef0-472a-8085-5ad023ecbccd}\"";

        string[] propertiesToRetrieve = new string[] { "System.DeviceInterface.PrinterPortName"};

        DeviceInformationCollection deviceInfoCollection = await DeviceInformation.FindAllAsync(aqsFilter, propertiesToRetrieve);

        foreach (DeviceInformation deviceInfo in deviceInfoCollection)
        {
            if (deviceInfo.IsDefault == true)
            {
                string strPortName = (string)deviceInfo.Properties["System.DeviceInterface.PrinterPortName"];

                if (!string.IsNullOrEmpty(strPortName))
                {
                    strPortName = await ParsePortName(strPortName);
                    if (!string.IsNullOrEmpty(strPortName))
                    {
                        _strIPAddress = strPortName;
                    }
                }
                break;
            }
        }

1 个答案:

答案 0 :(得分:0)

这未被认可,因为IP地址可能会发生变化,因此不可靠。

话虽这么说,如果您的打印机是使用wsd安装的,那么它在技术上是受支持的 例如。, DEVPKEY_PNPX_IpAddress DEVPROP_TYPE_STRING_LIST 32" 10.137.192.202" 但由于IP地址可能会发生变化,因此无法在没有多种情况检查的情况下可靠地使用此功能。

此外,看看这个例子,你没有找到DAF提供商,而是寻找设备。您正在使用0ecef634-6ef0-472a-8085-5ad023ecbccd这是打印机类guid。它看起来也不像在PnP Explorer属性包中传播IP地址,因此无法访问IP地址。