首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >USB自断开

USB自断开
EN

Stack Overflow用户
提问于 2014-11-29 18:18:02
回答 1查看 281关注 0票数 0

我不熟悉USB,而且我不能(用delphi)用自断开USB功能来改进我的软件。

该程序是打开的,并从USB存储驱动器(例如,F:/)运行,当它停止时,我尝试做的是自动弹出设备。

我还尝试做了一个.bat文件,它运行了一个禁用USB设备的程序。如果此.bat文件是从本地驱动器(C:/)启动的,则一切正常,但如果此.bat文件是从U盘(F:/)启动的,则会失败。

下面是我获取信息的链接:

How can i remove a USB flash disk programmatically using delphi?

在delphi中有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2014-11-29 18:50:12

您遇到的问题是您正在执行的进程是从您正在弹出的驱动器中运行的。可执行文件已锁定,这会阻止您的驱动器被弹出。

你需要做什么是显而易见的。您必须确保驱动器上没有文件被锁定。这意味着您必须终止您的进程。然后,您需要从不同的驱动器运行另一个进程来执行弹出。执行以下操作:

  1. 从进程A,将可执行文件写入要弹出的驱动器以外的驱动器。例如,写入temp目录。
  2. 通过调用CreateProcess启动另一个可执行文件,比如进程B。在命令行上将进程A的可继承句柄传递给进程B。
  3. 进程A终止。
  4. 进程B等待,直到进程A的句柄发出信号,然后退出驱动器。
  5. 进程B终止。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27201148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档