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

大卫·理查德

我对试图找出一个有效的例子感到非常生气。是的,我是 VB.Net 的新手。我用 VB6,很久以前。我只是不能让那件事做我想做的事。

我的项目:我完全厌倦了使用 Steam 和其他 3rd 方应用程序,这些应用程序需要配对和非常困难或长时间的配置才能从非 Xinput 控制器模拟 XBox 控制器。我买了一个 RegeMoudal Pro 控制器,当然,Windows 不会读取任何按钮条目,我需要使用第三方应用程序。应用程序的问题在于它们需要太多配置。我只想将控制器的输入转换为 Windows 可检测输入,仅此而已。

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

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

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

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 Controller 到 Xbox Controller 输入应用程序。我坚持使用 Visual Basic 代码,而不是 C++ 或 C#。这是针对 WINDOWS 的,而不是针对 android 或任何其他系统的。参考微软的网站帮助也无济于事,因为他们没有在 Visual Basic 中提供示例,我只是不明白他们用来解释一切的语言,我只是一个简单的人,哦,可以的示例需要作为项目下载。我只想要一个示例代码,无需下载任何东西即可使用。

大卫·理查德

因此,在对 VB 进行了如此多的尝试并尝试搜索之后。我终于找到了如何在 Visual Basic (VB.Net) 中列出蓝牙设备。

首先,您需要 32Feet.Net。我遇到了 NuGet 问题。我完全不知道那是什么。搜索后,我发现可以使用 7zip 或其他类似应用程序轻松解压缩 nuGet 包。因此,这里是准备 Visual Basic aka VB.Net 以使用蓝牙设备所需的步骤。

  1. 转到 32Feet.Net 的 GitHub 页面:https : //github.com/inthehand/32feet
  2. 下载“InTheHand.Net.Bluetooth - 蓝牙经典”nuget 包
  3. 将“nupkg”文件解压缩到您选择的文件夹中
  4. 打开 VB.Net
  5. 在菜单中导航到“项目\添加项目引用...”
  6. 单击项目引用窗口底部的“浏览”按钮
  7. 在路径“runtimes\win\lib\netcoreapp#.#”下浏览新下载和解压的nuget包文件夹并选择DLL“InTheHand.Net.Bluetooth.dll”

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

Imports InTheHand.Net.Sockets

完成此操作后,您可以列出蓝牙设备。我将解释我是如何制作示例窗口的。我放了 1 个按钮、1 个标签和 1 个计时器对象。当使用“Application.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

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在 Visual Basic 2015 而非 VB.NET 中捕获异常

如何在 Visual Studio Mac 上创建 VB .NET 项目?

有没有办法在vba(visual basic / VB.NET)中全部放在一行上?

在Visual Basic vb.NET中阅读INI

如何在Visual Basic .NET中修改UInteger类型?

在 Visual Basic .NET 中,如何列出和调用具有给定自定义属性的所有类函数?

Visual Basic(VB.NET)示例代码,以通过VB.NET Windows应用程序发送SendGrid电子邮件

如何在Visual Studio 2010上修复此程序集错误vb.net项目

如何在Visual Basic 98上为Windows 8 64位注册ActSkin4.ocx?

如何在Visual Studio中的Mac上创建和运行Visual Basic代码

在 Youtube 上找到“VB.NET - 如何在 Visual Studio 中创建 SQLite 数据库”。当我从工作室和它运行它时。不工作

在没有Visual Studio的情况下,如何在vb.net中添加引用?

Visual Basic(vb.net)如何检查任务是否无法完成

在Windows 7上构建用于xp平台程序的Visual Basic .net程序

如何在vb.net中的图表上的数据点上放置自定义标签?

在Visual Basic 6中使用Adodb记录集到VB.net

如何在Visual Studio 2015中更改VB.NET语言版本

如何在Visual Studio 2017 vb .net中添加reportviewer控件

如何在VB.NET中引用.dotx资源?(Visual Studios专业版)

如何在Visual Basic中在运行时更改按钮上显示的图像?

Linux中的Visual Basic .Net

如何在Visual Basic上包括复选框验证?

如何在Visual Basic 2013(.net)中自动调整水平对齐的面板的大小

如何在Visual Basic Windows窗体中创建半透明效果?

如何在Visual Basic 2010中获取Windows 32或64位版本?

如何在Visual Basic中打开Windows应用程序“ .exe”文件以查看代码?

如何在visual basic中调用API?

如何使ScrollBar在Visual Basic表单中的图表上可见

如何在vb.net中的表单上的任何位置检测到鼠标单击?