如何在WINDOWS的Visual Basic(vb.net)中列出所有蓝牙设备



我对试图找出一个可行的例子感到非常恼火。是的,我是VB.Net的新手。很久以前我就用过VB6了。我就是不能让那东西做我想做的事。

我的项目:我完全厌倦了使用Steam和其他需要配对和非常硬或长配置的第三方应用程序来从非Xinput控制器模拟XBox控制器。我买了一个RegeMoudal Pro控制器,当然,Windows不会读取任何按钮条目,我需要使用第三方应用程序。这些应用程序的问题在于它们需要太多的配置。我只想把控制器的输入转换成Windows可检测的输入,就这样

所以,既然我不能在FASM做这样一个复杂的项目而不让我到处头疼,我选择了简单的方式,老派。我花了两天时间才弄清楚我必须参考UWP和其他一些东西。现在,我对自己说,如果我至少能得到蓝牙连接的设备列表,我就可以从某个地方开始,但不行。无论我发现什么,除了我几乎不懂的非常复杂的代码之外,没有人能以干净的方式使用任何Visual Basic代码。

有人能帮我至少找出如何在蓝牙上列出所有设备吗。我不在乎它们是否连接,我只想列出设备。

这是我得到的。一个简单的表单,有一个按钮和一个标签。我知道,这只是有一堆错误。

Imports Windows.Devices.Bluetooth
Imports Windows.Devices.Enumeration
Public Class FrmMain
Private Sub BouGetdev_Click(sender As Object, e As EventArgs) Handles BouGetDev.Click
Dim odevices = New DevicePicker
Dim odev As DeviceInformation
Dim sdevices As String
sdevices = ""
LabRes.Text = "Searching devices..."
For Each odev In odevices
sdevices = sdevices & Chr(13) & odev.GetType.Name
Next
End Sub
End Class

我只是不知道如何完成这项简单的任务,所以一个温和的帮助会很好。

我很沮丧,因为Windows不会捕获被检测为蓝牙Pro控制器的控制器的任何输入,但一个简单的网页会捕获每一个输入,所以我很生气,因为我等这个控制器已经很久了,因为XBOX ONE控制器有严重的操纵杆问题,让我愤怒地退出游戏,因为当发布它,所以这些Xbox控制器现在被列入我的黑名单,因为即使微软把它寄回我,它也有完全相同的问题,所以我得到了退款。

现在,我想创建我自己版本的Pro控制器到Xbox控制器的输入应用程序。我坚持说,是Visual Basic代码,而不是C++或C#。这是针对WINDOWS的,而不是android或任何其他系统。参考微软的网站也没有帮助,因为他们没有提供Visual Basic中的样本,我只是不理解他们用来解释一切的语言,我只是一个简单的人,哦,可以获取的样本需要作为项目下载。我只想在不下载任何东西的情况下,简洁方便地提供一个示例代码。

所以,在用VB做了这么多并尝试搜索之后。我终于学会了如何在Visual Basic(VB.Net)中列出蓝牙设备

首先,你需要32英尺。网我遇到了NuGet问题。我完全不知道那是什么。经过搜索,我发现nuGet包可以简单地使用7zip或其他类似的应用程序解压缩。因此,以下是准备Visual Basic(又名VB.Net)以使用蓝牙设备所需的步骤。

  1. 转到32英尺。Net的GitHub页面如下:https://github.com/inthehand/32feet
  2. 下载";在手中。网蓝牙-蓝牙经典;nuget包
  3. 解压缩";nupkg";您选择的文件夹中的文件
  4. 打开VB.Net
  5. 在菜单中导航到";项目\添加项目引用">
  6. 点击";浏览";项目参考窗口底部的按钮
  7. 在此路径下浏览您新下载并解压缩的nuget包文件夹";runtimes\win\lib\netcoreapp##"并选择DLL";在手中。网蓝牙.dll">

现在您将能够使用蓝牙功能。接下来,我们需要导入函数,以便它们在您编码时可用,因此您需要在项目的一开始就放上这行:

Imports InTheHand.Net.Sockets

现在完成了,你可以列出你的蓝牙设备。我将解释我是如何创建示例窗口的。我放了一个按钮,一个标签和一个定时器对象。当在上面提到的解决方案之后用";应用DoEvents()"我的标签仍然没有更改文本。所以我用了一个VB6的老把戏和一个定时器。我只需禁用一个计时器对象,当点击按钮时,我会启用这个计时器,它会执行我想要的操作。1非常非常重要的是,一旦你开始了计时器操作,在执行计时器内的任何任务之前,请立即禁用计时器,否则你的功能将以计时器滴答作响的速度重复。

这是我在Visual Basic(VB.Net)中列出y计算机上蓝牙设备名称的完整代码

Imports InTheHand.Net.Sockets
Public Class FrmMain
Private Sub BouGetdev_Click(sender As Object, e As EventArgs) Handles BouGetDev.Click
LabRes.Text = "Searching devices..."
TmrBTScan.Enabled = True
BouGetDev.Enabled = False
End Sub
Private Sub TmrBTScan_Tick(sender As Object, e As EventArgs) Handles TmrBTScan.Tick
Dim bt_client As BluetoothClient = New BluetoothClient()
Dim odevices As BluetoothDeviceInfo() = bt_client.DiscoverDevices().ToArray()
Dim odev As BluetoothDeviceInfo
Dim sdevices As String = ""
Dim schr = ""
TmrBTScan.Enabled = False
For Each odev In odevices
sdevices = sdevices & schr & odev.DeviceName
schr = Chr(10) & Chr(13)
Next
LabRes.Text = sdevices
BouGetDev.Enabled = True
End Sub
End Class

这应该列出所有蓝牙设备的名称。至少,它对我来说是有效的,我希望这能帮助其他人,他们正在寻找下载什么、安装什么、获取什么、导航到哪里、编写哪些文件和代码行等非常清晰的步骤。真的很难得到完整的说明,所以我希望这能有所帮助。

谢谢那些在这里帮助我的人。我不得不做一些深入的搜索,但至少我现在可以开始我的项目了。

首先请修复此错误

button_Click事件在UI线程上运行。

LabRes.Text = "Searching devices..."

在该方法完成之前,用户不会看到此文本。

添加这个

LabRes.Text = "Searching devices..."
application.doevents()

它允许UI在运行代码时进行更新。

获取范围内的蓝牙设备

Private Sub SurroundingSub()
Dim client As BluetoothClient = New BluetoothClient()
Dim items As List(Of String) = New List(Of String)()
Dim devices As BluetoothDeviceInfo() = client.DiscoverDevicesInRange()
For Each d As BluetoothDeviceInfo In devices
items.Add(d.DeviceName)
Next
End Sub

最新更新