4

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

我认为这是不可能的,因为我在 Internet 上进行了搜索,而且这种编码会带来安全风险

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

4

4 回答 4

4

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

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

于 2012-02-26T16:44:47.440 回答
1

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

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

于 2012-02-26T16:36:04.120 回答
0

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

于 2012-08-11T20:50:26.413 回答
0

我认为您可以使用 system() 来做到这一点,如果您熟悉 cmd 中的 disktype 命令,那么我认为您可以解决问题。您可以在命令提示符下执行的所有操作也可以使用 system() 在 c++ 中执行。但是会消耗很多内存空间

于 2013-11-18T22:50:19.927 回答