Как отследить и обработать события от USB HID устройства? Javascript #697610


#0 by musdust
Собственно, сабж.
#1 by spectre1978
у JS разве есть доступ до такого?
#2 by Torquader
Таки USB-HID для Javascript - это нажатие кнопок клавиатуры. Так что никаких других методов и нет.
#3 by musdust
У JS есть доступ до всего. Это точная информация?
#4 by musdust
Подниму
#5 by Asmody
[ У JS есть доступ до всего. ] - да ты что? может и к файловой системе доступ есть?
#6 by regniws
ессно )))))) var fso=new ActiveXObject("Scripting.FileSystemObject");
#7 by kokamoonga
С каких пор ActiveX имеет отношение к javascript? И с каких пор ActiveX стал поддерживаться в браузерах отличных от осла?
#8 by pumbaEO
есть node-webkit
#9 by musdust
Ты думаешь что нету? Я думал ты шаришь. Ошибся
#10 by regniws
зато по тебе видно, что не шаришь.
#11 by Asmody
безопасность? нет, не слышал
#12 by H A D G E H O G s
К usb устройствам то у винды доступа нет толкового, а не то, что у этих ваших js
#13 by Принт
и это не может не радовать
#14 by Torquader
К USB-HID доступ есть, только там всё не просто - устройства-то разные бывают. Только вот через javscript нельзя к Windows-API добраться. Хотя, если javascript в составе Windows Scripting Host, то он там ничем от VbScript не отличается (кроме невозможности передачи параметров по ссылке, тогда как некоторые вызовы именно этого и требуют).
#15 by H A D G E H O G s
Я смотрел статью - чуваки на Дельфи писали драйвер для usb устройства. Я ниасилил их ход мысли.
#16 by Torquader
Драйвер - это если нужно новое устройство, для существующего - нужно только прослойку-фильтр, которая будет часть событий себе загребать.
#17 by spectre1978
А что не так?
#18 by spectre1978
к , прошу прощения
#19 by Ksandr
Ответ: Никак!
#20 by musdust
по тебе тоже. плохо тем не менее она как-то с ними работает Интересно. Если известно как на VbScript пешить, напишите, я сам на JavaScript переведу. Драйвер то есть, винда определила устройство как USB-HID, установила для него стандартный драйвер. Правильно писать так - "Я не знаю ответ!"
#21 by spectre1978
Вы бы написали по-нормальному, что вы хотите сделать. Что за устройство? JS какой - браузерный или WSH? И какой результат требуется получать, может, там специальные средства работы с хид нафиг не нужны. Тогда, возможно, вам кто-то вменяемо ответит.
#22 by musdust
JS любой. Можно на любом другом языке написать, на нужный JS я сам переведу. Мне главное узнать какую dll вызвать и с какими параметрами, и вообще как работать с этим видом устройств. Я вроде по нормальному написал, все понятно, мне кажется.
#23 by Принт
>>Можно на любом другом языке написать, на нужный JS я сам переведу. import pywinusb.hid as hid def read_values(target_usage):     all_devices = hid.HidDeviceFilter.get_devices          if not all_devices:         print("Can't find any non system HID device connected")     else:         usage_found = False         for device in all_devices:             try:                 device.open                 for report in device.find_feature_reports:                     if target_usage in report:                         report.get                         print("The value:", list(report[target_usage]))                         print("All the report: {0}".format(report.get_raw_data))                         usage_found = True             finally:                 device.close         if not usage_found:             print("The target device was found, but the requested usage does not exist! ") if __name__ == '__main__':     target_usage = hid.get_full_usage_id(0xff00, 0x02)     read_values(target_usage)
#24 by sikuda
Я так понимаю типа
#25 by sikuda
Специально для regniws
#26 by spectre1978
Да-да :) Особенно интересно посмотреть, как будет выглядеть перевод на JS первой же строчки этого кода.
#27 by Torquader
Ну, если он получить OLE-объект нужного типа, то и на JavaScript переведёт. А будет что-то типа WScript.GetObject(winmgmts:\.)
#28 by Torquader
Не забываем, кстати, что JavaScript как php и любой другой интерпретируемый язык - это просто текст и работать будет только в соответствующем интерпретаторе.
#29 by Принт
подсказка: import ctypes setup_api       = ctypes.windll.setupapi hid_dll         = ctypes.windll.hid kernel32        = ctypes.windll.kernel32 ReadFile            = kernel32.ReadFile CancelIo            = kernel32.CancelIo WriteFile           = kernel32.WriteFile CloseHandle         = kernel32.CloseHandle CloseHandle.restype = BOOL CloseHandle.argtypes = [HANDLE] SetEvent            = kernel32.SetEvent WaitForSingleObject = kernel32.WaitForSingleObject c_tchar                         = c_wchar CreateFile                      = kernel32.CreateFileW CreateEvent                     = kernel32.CreateEventW      CM_Get_Device_ID                = setup_api.CM_Get_Device_IDW SetupDiEnumDeviceInfo           = setup_api.SetupDiEnumDeviceInfo SetupDiEnumDeviceInterfaces     = setup_api.SetupDiEnumDeviceInterfaces SetupDiDestroyDeviceInfoList    = setup_api.SetupDiDestroyDeviceInfoList
Тэги: Веб-мастеринг
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С