![Windows CE 6 可以自动运行插入的 USB 记忆棒上的应用程序吗?](https://linux22.com/image/1457168/Windows%20CE%206%20%E5%8F%AF%E4%BB%A5%E8%87%AA%E5%8A%A8%E8%BF%90%E8%A1%8C%E6%8F%92%E5%85%A5%E7%9A%84%20USB%20%E8%AE%B0%E5%BF%86%E6%A3%92%E4%B8%8A%E7%9A%84%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%90%97%EF%BC%9F.png)
默认情况下,Windows CE 6 是否会自动运行插入的 USB 记忆棒上的应用程序?我们实际上正在尝试确保这种情况不会发生,但我们找到的文档对于这种情况是否发生存在矛盾...
回应 Ramhound 的请求:
1)有一个邮政在 stackoverflow 上似乎相关,但是msdn 页面它链接到的是运行特定的程序,而不是“运行插入的 USB 记忆棒上显示的任何内容”(Windows XP/7/8/等称之为自动运行)。
2)有一个讨论在 intermec 上指向msdn 页面谈论的是自动运行,但它谈论的是 Windows Mobile,可能适用于 Windows CE,也可能不适用。还有一个链接安全策略设置这完全脱离了上下文,我不知道如何运用其中的信息。
3)布鲁斯·艾特曼(通常知道自己在说什么)说“Windows CE...没有插入媒体时自动运行可移动媒体上的应用程序。”(重点是我的)
4)关于msdn 上的自动运行这个问题没有得到解答
实践测试
对于我们现有的 WinCE 6 应用程序(使用 SD 卡运行),我添加了对 SHGetAutoRunPath() 的调用。它返回“\Network\2577\autorun.exe”,其中 2577 是预期的 ARM 处理器编号,但“Network”很奇怪,因为它未连接到网络。无论我在启动时是否插入 USB 记忆棒,都会返回相同的值。
然后,我制作了现有应用程序的另一个版本,只需将文件(“autoran.txt”)写入 SD 卡上的可写目录,然后将修改后的应用程序复制到 USB 记忆棒上的“\2577\autorun.exe”。在设备启动时插入此 USB 记忆棒会导致不SD 卡上出现“autoran.txt”文件,表明自动运行没有发生。
答案1
设备未连接到网络并不意味着 CE 同意这一点。它可以将设备本身(localhost)视为网络。
我以为自动运行文件(不是 exe)将从 USB 驱动器的根目录运行,而不是从文件夹运行。让此位置依赖于处理器类型似乎不合逻辑。您是否在根目录中使用自动运行进行了测试?为什么它应该与 CD ROM 不同?
https://support.microsoft.com/en-us/kb/818804
Autorun.inf 是一个文本文件,位于应用程序 CD-ROM 的根文件夹中。