Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Функция позволяет получить данные об удалённыз устройствах. выводятся данные - мак-адрес,имя устройства и как определил Вадим - тип устройства ("Cellular phone" для телефона,"Smartphone"- смартфон) Применён файл из программы Bluetooth Command Line Tools (http://bluetoothinstaller.com/bluetooth-command-line-tools/) файл приходится "таскать" вместе с проектом (можно вложить-затем извлечь из скомпилированного проекта).Собственно функция лишь запускает этот файлик- и выводит полученные данные в переменную. При работе функции вылезает командное окно--как ни бился- скрыть немогу- окно висит пока идёт опрос удалённых устройств(у меня около 10-15 сек) Архив разбит на 2 архива т.к. на форум больше 1000кб нельзя выложить одним файлом В архивах демо проект,файл(exe) и функция
Добавлено (06 Апреля 2016, 00:07) --------------------------------------------- переименовать части BTDiscovery.part1.rar и BTDiscovery.part2.rar соответственно и распаковать...
Вполне возможно и так, Вадим- я незнаю как эта утилита работает- я лишь сделал чтоб результат можно было получить в необук. У меня такое же было при экспериментах- после перезагрузки системы при откл телефе показывало что нету устройств..Мысль пришла - а нельзя ли пинговать если известен мак- адрес...? Зайду туда на сайт почитаю получше...
Добавлено (10 Апреля 2016, 20:54) --------------------------------------------- Только что проверил твою версию-при включённом телефе всё норм выдаётся(мак - адрес), затем отключил- подождал минут 5 - и запустил проверку доступных устройств - Устройств не обнаружено. Мой вывод- всё же чтение не из реестра - а реальная проверка (опрос)доступных устройств. Но такое как ты описал постом выше у меня было- ещё когда с утилитой экспериментировал-только я не ждал 5 мин. - а сразу проверял - ну и непридал этому значения Про пинг ничего несказано у них на сайте - ну и вообще чего либо интересного связанное с блютузом более не нахожу..
У меня два телефона с блютуз. Эксперименты с первым показали, что не важно включен блютуз или нет, компьютер все равно показывает его мас-адрес (ждал больше 5 минут и даже перезагружал, всё равно показывает). Зато со вторым телефоном наоборот: как только выключил на нем блютуз, так сразу запустил функцию и она уже не показала в списке его мас-адрес. Если же включить блютуз на этом телефоне, то сразу его находит, без паузы.
Вероятно дело в том, что экспериментируя с первым, я прописал его в системе (он всегда отображается в проводнике виндовс), поэтому его мас-адрес читается из системы. А второй телефон я специально не настраивал на ноут, вот его функция находит или теряет корректно. Так что у меня теперь есть с чем экспериментировать!!! Спасибо, Андрей, огромное!!!!! Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
Можно добавить в первый пост, что третье выводимое значение - это "тип устройства". Я это понял по тому, что для моего телефона это значение "Cellular phone", а для моего смартфона (на нем виндовс мобиле 6) это значение "Smartphone".
Кстати, после того как я удалил устройство (мобильный телефон) из списка блютуз-устройств на ноуте, телефон (как блютуз-устройство) стал распознаваться функцией корректно. Выходит, что действительно, функция покажет MAC-адрес зарегистрированного в системе устройства не зависимо от того в доступе оно или нет. Так что, если использовать эту функцию для детекта наличия устройства, то не нужно его устанавливать в систему. Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
При работе функции вылезает командное окно--как ни бился- скрыть немогу
Убрать окно консольного приложения можно, если сделать отдельную утилитку, которая будет мониторить окна и скрывать, если найдено. Эту утилиту может запускать основная программа. В свойствах утилиты можно указать "Режим окна": "Позади всех окон" (при запуске в скрытом режиме у меня утилита отказывается работать, или антивирь блокирует, не разбирался).
Для скрытия окна приложения нужен плагин zmFunctions - команды zmGetWindowHandle и zmShowWindow. Утилита может содержать таймер, через небольшой промежуток (например, 10 мс) вызывающий подпрограмму:
:btdiscovery IFEx "[Descriptor] = [#34][#34] OR [Descriptor] = 0" zmGetWindowHandle "[PubDir]btdiscovery.exe" "[Descriptor]" Else If "[gotovo]" "<>" "1" zmShowWindow "[Descriptor]" "Hide" SetVar "[gotovo]" "1" EndIF EndIF Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
Вадим - тут немного всё по другому,скрыть то окно консоли можно - если средствами необука пользоваться- но тут окно вызывается из скрипта (для того чтоб функцией вернуть пролученные значения)- и тут можно обойти и скрыть его - НО тогда данные за которыми вобщем то и идёт охота невыводятся..Я перебрал всё что я мог в этом случае-или знаний нехватает -или невозможно средствами vbs
Добавлено (12 Апреля 2016, 21:58) --------------------------------------------- В общем - скрывать окно консоли надо средствами скрипта(в данном случае VBS)
Добавлено (12 Апреля 2016, 22:18) --------------------------------------------- В vbs знаю 2 метода Run и Exec которыми можно запустить внешнее приложение, так вот в данном случае был применён метод Exec так как он обеспечивает доступ к потокам этого приложения , а скрыть окно (минимизировать ) в параметрах нет... http://www.script-coding.com/WSH/WshShell.html
Андрей, я обнаружил, что функция не находит смартфон, если не активен экран настройки Bluetooth (например, если экран смартфона погас или если я просто перешел на другой экран, т.е. просто вышел из настроек Bluetooth). При этом сам Bluetooth на смартфоне включен. Проверено на Nokia 5 и iPhone 5.
Возможно ли доработать функцию так, чтобы она находила смартфон не только при активном экране настроек Bluetooth?
Вынужден огорчить... (обращение идёт только к активному устройству) но ты натолкнул на мысль посмотреть что можно сделать в делфи.. есть несколько компонентов для работы с Bluetooth... обещаю посмотреть и по возможности что то сделать...( в ближайшее время)
Bluetooth активен, в том смысле, что я не отключал его. Просто когда отключается экран (для экономии батареи) или когда я просто выхожу из настроек Bluetooth функция теряет телефон. Получается, что созданная тобой функция считывает Bluetooth-устройства не просто в активном состоянии, а в каком-то особо активном режиме (режиме активации настроек, что-ли... не знаю как назвать то даже).
ЦитатаAS3856 ()
обещаю посмотреть и по возможности что то сделать...( в ближайшее время)
Спасибо большое! Это не срочно, подождёт сколько надо! Просто хочу до ума довести задуманное (я про автоматическую авторизацию по наличию определенного активного Bluetooth-устройства). На Делфи, наверное, действительно можно сделать. Хотя я в этом "ни бум-бум", к сожалению. Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
Нашёл подходящий компонент - можно хороший плагин сделать для работы с Bluetooth., - но с наскоку неполучится, всё специфично, надо разбираться основательно. Буду конечно - но нужно время. А компонент действительно хорош - можно даже чат сделать - соответственно управление компом (компами). Но вот при активном устройстве или нет - сказать пока не могу. Немного разгребу тут свои работы - и займусь этой...
Привет Вадим. Зайди на оффорум - где то там видел сообщение от эсперальты с готовым решением. Он предлагает плагин и програмку поставить на смартфон и можно управлять компом с телефона. Извини не помню в каком топике было это предложение. Самому пока некогда - пытаюсь фтп сервер соорудить - в принципе работает нормально и можно делать обмен файлами между компами и компом и смартфоном(по вай-фай) - но вот тестить тяжело - нету у меня второго компа ... ( кстати и компонент этот теперь ещё найти надо - комп завален барахлом).