0

我正在疯狂地试图弄清楚如何解决这个任务。我的目标很简单,每次插入 U 盘时复制一个文件,然后松开 U 盘,关闭 LED。解决它的最佳方法是什么?

1)我找到了这篇文章

http://geekswithblogs.net/BruceEitman/archive/2008/06/13/windows-ce-monitoring-for-disk-insertion-to-add-support-for.aspx

或者

http://geekswithblogs.net/BruceEitman/archive/2008/06/13/windows-ce-monitoring-for-disk-insertion-to-add-support-for.aspx

但我无法在 VB.NET 项目上翻译它。

2)然后我读到足以将RequestDeviceNotifications用于块设备。但是如何在 VB.NET 中做到这一点?

如果可能,我想避免使用 OpenNetCF。

谢谢

4

2 回答 2

1

由于您不想“使用 OpenNETCF”,我假设您不想使用任何未内置于 CF 的库或功能。我们将跳过那种愚蠢的论点和“你的时间价值”的讨论,并将其作为一项要求。

你需要做的是:

  1. 使用 P/Invoke 调用CreateMsgQueue。这会给你一个句柄。为了完整性,您可能还想做 CloseMsgQueue
  2. P/Invoke RequestDeviceNotifications并将上面 #1 返回的句柄与您想要的设备通知的DEVCLASS GUID 值一起传递给它 - 可能是 STORE_MOUNT_GUID。同样,为完整性添加 StopDeviceNotifications 是一个好主意。
  3. 那时,每当插入或删除发生时,您都会在队列中收到一条消息。然后调用ReadMsgQueue以获取消息中的DEVDETAIL数据。
  4. 解析 DEVDETAIL 并查看fAttached成员。
于 2012-06-25T14:26:41.447 回答
0

我要花点时间给你写,所以你需要自己做。

开始编写项目,找到所需调用的 P/Invoke 例程(如FindFirstFileCreateProcess)。在 SO 上,请查看 Windows mobile 中的存储卡问题以及如何在 windows mobile 中注册 WM_DEVICECHANGE 消息的表单

如果您找不到您无法拨打的特定电话,您只会死在水中。

在您完成项目时,发布(或搜索)您遇到的实际问题。

否则,听起来您是在要求某人编写项目并将其交给您。

于 2012-06-25T14:07:15.037 回答