当存储程序的 USB 插入计算机时,是否可以使程序自动运行(执行)
我认为这是不可能的,因为我在 Internet 上进行了搜索,而且这种编码会带来安全风险
例如,我有一个用 C++(在 Windows 上编译)编程的简单倒数计时器(10 比 1),当 USB(存储 .exe 文件)插入计算机时,计时器将启动,而无需我手动执行。
您可以创建一个Autorun.inf文件并将其放在 USB 驱动器上。连接驱动器后,Windows 将读取此文件。在文件中,您可以指定要运行的程序的名称,以及图标等。
插入 USB 驱动器后,您不能强制程序运行。这取决于操作系统的安全策略,并且大多数至少会提示用户“你想从这个驱动器运行'Setup.exe'吗?” 或类似的东西。
默认情况下这是不可能的,因为 Windows 尽可能让用户控制他们的计算机——如果他们不希望启用自动运行,则不可能自动执行程序。
您可以编写一个在后台运行的帮助程序(可能作为服务),该程序大部分时间都在休眠,等待插入 USB 设备。可能有一种方法可以接收此通知,或者您可能只是有定期轮询它,我不知道。一旦它检测到 USB 设备,它当然可以做任何它想做的事情(CreateProcess
等等)。
从 Windows 7 开始,当涉及到 USB 设备时,autorun.inf 文件将被忽略。U3技术允许将拇指驱动器视为 CD/DVD,这可能是一种可能的解决方案。
我认为您可以使用 system() 来做到这一点,如果您熟悉 cmd 中的 disktype 命令,那么我认为您可以解决问题。您可以在命令提示符下执行的所有操作也可以使用 system() 在 c++ 中执行。但是会消耗很多内存空间