有没有办法从 Windows ping 蓝牙设备?

有没有办法从 Windows ping 蓝牙设备?

我正在尝试自动化中央电视台在 Windows 10 上使用 AutoIt 布防 - 当我不在家时,尝试通过 ping 我的手机来布防摄像头(三星 Galaxy S7)。

我尝试 ping 手机的本地 IP 地址,但当手机进入睡眠状态时,它停止 ping。我看过一些关于 ping 蓝牙地址的帖子,但我找不到任何实际说明...我该怎么做?

答案1

您可以使用 DllCall() 和 Windows API: 蓝牙蓝牙参考。请看这里:

对于这些例子:

#include <WinAPI.au3>

;~ https://www.autoitscript.com/forum/topic/140162-help-with-dllstruct-and-pointers/?tab=comments#comment-984341

Global Const $hDllBthProps = DllOpen("bthprops.cpl")

Global $phRadio
Global $hFind = _BluetoothFindFirstRadio($phRadio)
MsgBox(0, "", "error: " & @error & @CRLF & "hFind: " & $hFind & @CRLF & "hRadio: " & $phRadio)
_WinAPI_CloseHandle($phRadio)
_BluetoothFindRadioClose($hFind)

Func _BluetoothFindFirstRadio(ByRef $phRadio)
    Local $tBLUETOOTH_FIND_RADIO_PARAMS = DllStructCreate('DWORD')
    DllStructSetData($tBLUETOOTH_FIND_RADIO_PARAMS, 1, DllStructGetSize($tBLUETOOTH_FIND_RADIO_PARAMS))
    Local $aResult = DllCall($hDllBthProps, "handle", "BluetoothFindFirstRadio", "struct*", $tBLUETOOTH_FIND_RADIO_PARAMS, "handle*", 0)
    If @error Then Return SetError(2, @error, 0)
    $phRadio = $aResult[2]
    Return SetError($aResult[0] = 0, 0, $aResult[0])
EndFunc   ;==>_BluetoothFindFirstRadio

Func _BluetoothFindRadioClose($hBtFind)
    Local $aResult = DllCall($hDllBthProps, "bool", "BluetoothFindRadioClose", "handle", $hBtFind)
    If @error Then Return SetError(2, @error, 0)
    Return SetError($aResult[0] = 0, 0, $aResult[0])
EndFunc   ;==>_BluetoothFindRadioClose

相关内容