gpt4 book ai didi

winapi - 在 Windows 上的 Qt 中检测 USB 通知

转载 作者:行者123 更新时间:2023-11-30 23:52:57 25 4
gpt4 key购买 nike

在我的 qt 应用程序中,我想将一些应用程序输出数据保存到我的 USB 笔式驱动器中的文件中。我需要在我的 qt 应用程序中加入以下功能

  • 检测U盘插入
  • 我只有一个usb插槽。
  • 插入后,我想知道它的驱动器号和盘符,然后将 PC 中特定位置的文件传输到该 USB 驱动器。

  • 谁能告诉我我必须使用哪个 winapi .lib、.h 和 .dll 文件来获得上述所有功能?

    如果有人可以提供一些代码片段,这对我很有帮助。

    最佳答案

    拉手 WM_DEVICECHANGE - 见 http://lists.trolltech.com/qt-interest/2001-08/thread00698-0.html了解如何在 QT 中处理 Windows 消息。

    如果 wParam 是 DBT_DEVICEARRIVAL然后将 lParam 转换为 DEV_BROADCAST_HDR *
    如果结构dbch_devicetypeDBT_DEVTYP_VOLUME再次转换 lParam,这次是 DEV_BROADCAST_VOLUME *
    现在检查 dbcv_unitmask位字段,遍历位 0..31 并检查相应的驱动器是否与您的 USB 驱动器匹配。

    if (wParam == DBT_DEVICEARRIVAL) {
    if (((DEV_BROADCAST_HDR *) lParam)->dbch_devicetype == DBT_DEVTYP_VOLUME) {
    DWORD Mask = ((DEV_BROADCAST_VOLUME *) lParam)->dbcv_unitmask;
    for (int i = 0; i < 32; ++i) {
    if (Mask & (1 << i)) {
    char RootPath[4] = "A:\\";
    RootPath[0] += i;
    // Check if the root path in RootPath is your USB drive.
    }
    }
    }
    }

    关于winapi - 在 Windows 上的 Qt 中检测 USB 通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5043096/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com