Это просто идея, которую я пытаюсь реализовать, но я не знаю, с чего начать. Представьте, что у вас есть USB-накопитель, который вы можете подключить к выбранным компьютерам. Если USB-накопитель когда-либо подключится к какому-либо другому устройству или компьютеру, он отключится. Я не хочу использовать шифрование, потому что, если бы я хотел сделать это с MP3-плеером. так что моя единственная идея, которая приходит мне в голову - это файл автозапуска, который запускается при подключении USB и ищет файл на подключенном ПК или устройстве, если не находит его, то отключает, если делает, то остается подключенным ,

Кто-нибудь есть идеи, где начать с этой идеей.

2 ответа2

2

На USB-устройствах нельзя разрешать автоматический запуск произвольного кода (теперь Windows запрашивает, хотите ли вы выполнить функцию автозапуска CD /DVD-дисков /USB-устройств). Поэтому я не думаю, что вы можете ожидать автоматического отключения USB-устройства таким образом.

Однако, если вам удалось запрограммировать микросхему контроллера USB на USB-накопителе, возможно, вы сможете эффективно отключить устройство, если хост-машина не соответствует определенным параметрам. У меня нет опыта в том, чтобы сказать, как это сделать, и я не знаю, какие параметры можно проверить. Я предполагаю, что что-то на этом низком уровне выходит за рамки того, что вы хотите взять на себя, поэтому я бы сказал, что ваша идея просто невозможна через автозапуск из-за того, что машины не выполняют этот код автоматически. Вы можете настроить это для машин, которые вы знаете и используете, но я предполагаю, что это не та область, которую вы хотите достичь.

1

Я знаю, что это плохая форма. SuperUser не является службой написания сценариев, и я не хочу поощрять такое поведение, но то, что вы спрашиваете, настолько просто, что ... хорошо, вот небольшой файл VBScript, который выполнит свою работу:

Const USBFILE = "C:\Whatever.usb"    'Or whatever file name you want here
Const USB_DRIVE = "E:"    'Or whatever letter your USB drive is

Dim objShell :Set objShell = CreateObject("WScript.Shell")
Dim objFS :Set objFS = CreateObject("Scripting.FilesystemObject")

If objFS.FileExists(USBFILE) = False Then
    objShell.Run "mountvol " & USB_DRIVE & " /d"
End If

Сохраните этот файл как .vbs

Включить это в Autorun.inf и настроить его для своих нужд - решать только вам. Этот вопрос уже не по теме, как есть.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .