USB插入时自动运行

时间:2012-02-26 16:29:57

标签: c++ windows usb execute autorun

当存储的USB插入计算机时,是否可以使程序自动运行(执行)

我不认为这是可能的,因为我在互联网上搜索过的搜索以及此类编码所带来的安全风险

E.g。我有一个简单的倒数计时器(10比1)用C ++编写(在Windows上编写),当USB(存储.exe文件)插入计算机时,计时器将启动而不用我手动执行。

4 个答案:

答案 0 :(得分:3)

您可以创建Autorun.inf文件并将其放在USB驱动器上。连接驱动器后,Windows将读取此文件。在文件中,您可以指定要运行的程序的名称,以及图标等。

插入USB驱动器时,强制程序无法运行。这取决于操作系统的安全策略,并且大多数将至少提示用户“你想从这个驱动器运行'Setup.exe'吗?”或类似的东西。

答案 1 :(得分:1)

默认情况下,这是不可能的,因为Windows会尽可能地让用户控制他们的计算机 - 如果他们不想启用自动运行,则无法自动执行程序。

您可以编写一个在后台运行的帮助程序(可能作为服务),大部分时间都在休眠,等待插入USB设备。可能有办法接收此通知,或者您可能只是需要定期轮询,我不知道。一旦它检测到USB设备,它当然可以做任何想做的事情(CreateProcess等。)。

答案 2 :(得分:0)

从Windows 7开始,当涉及到USB设备时,会忽略autorun.inf文件。 U3技术允许将拇指驱动器视为CD / DVD,这可能是一种可能的解决方案。

答案 3 :(得分:0)

我认为你可以使用system(),如果你熟悉cmd中的disktype命令,那么我认为你可以解决问题。您可以在命令提示符中执行的所有操作也可以使用system()在c ++中完成。但它会占用大量的内存空间