2012-02-26 3 views
3

Можно ли сделать программу автозапуск (выполнить), когда USB она хранится на подключен к компьютеруАвтозапуск при USB подключении

Я не думаю, что это возможно из-за поисков я посмотрели в Интернете, а также на риск безопасности, такой код был бы

Например У меня есть простой таймер обратного отсчета (от 10 до 1), запрограммированный на C++ (выполняется на окнах), когда USB (который хранится .exe-файл) подключен к компьютеру, таймер начнется без моего запуска вручную.

+0

Это программное обеспечение - практически все возможно. В этом случае вам может понадобиться дополнительное программное обеспечение, чтобы помочь вам. –

+0

@CarlNorum: Действительно, но в таком случае, почему бы вам не позволить программному обеспечению _installed_ выполнить обратный отсчет? – MSalters

ответ

2

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

Вы не можете force программа для запуска при вставке USB-накопителя. Это зависит от политики безопасности операционной системы, и большинство из них, по крайней мере, подскажут пользователю: «Вы хотите запустить« Setup.exe »с этого диска?» или что-то типа того.

+0

Насколько я понимаю, 'Autorun.inf' игнорируется для неопытных дисков (или, по крайней мере, для многих типов съемных носителей, таких как USB-накопитель). Способ, которым многие компании работают, заключается в том, что USB-устройство действительно сообщает ОС как два устройства, один USB-накопитель и один оптический дисковод, а также автозапуск на виртуальном оптическом диске. –

+1

Это сильно зависит от версии и настроек Windows; По моим оценкам, менее 50% компьютеров с ОС Windows все еще запускают 'Autorun.inf'. – MSalters

1

По умолчанию это невозможно, так как Windows позволяет пользователям контролировать свои компьютеры как можно больше - если они не хотят, чтобы автозапуск был включен, автоматическая программа не будет выполнена автоматически.

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

+0

См. [Этот вопрос] (http://stackoverflow.com/questions/4078909/detecting-usb-insertion-removal-events-in-windows-using-c) для получения подробной информации о получении таких уведомлений. –

0

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

0

Я думаю, вы можете сделать это с помощью system(), если вы знакомы с командой disktype в cmd, тогда я думаю, что вы можете разобраться. Все, что вы можете сделать в командной строке, вы также можете сделать в C++ с помощью system(). Но он будет потреблять много памяти

Смежные вопросы