我们要求在我们的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;
}
}
答案 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地址。