Qt安全移除设备
Qt safely remove a device
我正在寻找一种方法来安全地从我的Qt 5.2应用程序中删除我的USB密钥,但我找不到任何Qt模块来做到这一点。
这是一种方法还是我必须硬编码?
我从来没有使用Qt删除USB,但这个简单的c代码也将工作。
#include <sys/mount.h>
int umount(const char *target);
如果您的意思是通过移除来卸载usb设备,那么就没有跨平台的解决方案了。也许可以在QtSystems模块中添加一些东西,但问题是这需要管理员权限或一些技巧,例如Linux上的setuid或caps等。
你现在可以按照下面的方式来实现这个功能:
void MyClass::unmount() {
#ifdef Q_OS_LINUX
// See details: http://linux.die.net/man/2/umount
if (umount(myUsbKeyPath) < 0)
qDebug() << "Failed to umount";
#elif Q_OS_WIN
// See details: http://support.microsoft.com/default.aspx?scid=kb;en-us;165721
DWORD dwBytesReturned;
DeviceIoControl(hVolume,
IOCTL_STORAGE_EJECT_MEDIA,
NULL, 0,
NULL, 0,
&dwBytesReturned,
NULL);
#endif
}
相关文章:
- Qt的事件循环线程是安全的还是原子的?处理"队列连接"时如何同步?
- Qt类的私人部分是不安全的
- Qt的QBuffer线程安全吗?
- Qt/C++(跨平台)中加密安全的伪随机数生成器
- 在QT中,从CloseEvent函数发出信号是安全的
- 访问QT小部件线程安全
- 在退出应用程序时安全退出Qt线程
- Qt的连接调用本身线程安全吗?
- Qt QTimer 以这种方式停止它是否安全
- Qt,关于UDPlink的线程安全
- Qt:写这个类的析构函数的正确和安全的方法是什么
- 如何安全删除QT::QTcpSocket
- Qt:QBuffer线程在此代码中是否安全
- Qt 本地安全 Web 套接字
- Qt信号槽在线程上,这是安全的方式吗?
- 安全:如何显示/隐藏,通过密码,Qt应用程序中的QGroupBox
- 如何利用Qt使QObject方法线程安全
- Qt和QWidget更新中的std::线程安全
- 如何从按钮文本qt中删除和安全
- Qt安全移除设备