首先,我已经广泛阅读了 Windows 10 上自动连接到 MS 无线显示器的内容,并且基本上尝试了所有解决方案。(从技术上讲,我确实让 AutoHotKey 解决方案工作了,实际上甚至在研究之前就这样做了。但是,我觉得这有点不专业,而且肯定有一些 API 可以连接到这个东西。)在经历了所有这些之后,我刚刚开始阅读不同的命名空间。最后,我找到了 Windows.Devices.WiFiDirect。这给了我最大的进步,即它开始连接并在屏幕上显示,然后出现异常,指出设备无法访问。很气人。
谁能准确解释这里发生了什么?似乎这应该是将我的屏幕连接到此设备的正确方法,但它只是无法正常工作。下面的代码,它非常简短明了。
编辑:
根据 Roy Li 的建议,我尝试使用不同的 socket.ConnectAsync 方法重载。这实际上确实产生了影响,但我仍然收到一个例外,尽管是一个不同的例外。该方法现在尝试连接更长时间但仍然失败,这次出现“连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立连接失败,因为连接的主机没有响应”异常。这是否意味着 Window 的操作系统在连接到此设备时正在使用某种秘密握手?如果是这样,这可能是一个死胡同。代码已在下面更新。
static async Task Main()
{
string id = null;
string prefix = "MicrosoftDisplayAdapter";
WiFiDirectDevice device;
StreamSocket socket = new StreamSocket();
try
{
DeviceInformationCollection devInfoCollection = await DeviceInformation.FindAllAsync(WiFiDirectDevice.GetDeviceSelector());
foreach (DeviceInformation devInfo in devInfoCollection)
{
if (devInfo.Name.StartsWith(prefix))
{
id = devInfo.Id;
}
}
device = await WiFiDirectDevice.FromIdAsync(id);
var endpointPairCollection = device.GetConnectionEndpointPairs();
await socket.ConnectAsync(endpointPairCollection[0].RemoteHostName, "50001"); //This line begins connecting to the display but ultimately fails
}
catch (Exception e)
{
//device unreachable exception
}
}