Winapi 非阻塞SHFileOperation

Winapi 非阻塞SHFileOperation,winapi,Winapi,SHFileOperation需要一个有效的窗口句柄,在该句柄中执行所有窗口消息 我想独立于当前调用进程使用SHFileOperation,这样我可以在调用SHFileOperation后立即关闭该进程(并返回?!),这意味着我想将其“传递”到另一个进程或窗口 我尝试了GetDesktopWindow句柄,以便将其“传递”到资源管理器 因此,我的问题是,如何能够调用SHFileOperation,在调用后立即关闭进程,而它仍在执行任务 所以我的问题是,怎么可能调用SHFileOperation,

SHFileOperation
需要一个有效的窗口句柄,在该句柄中执行所有窗口消息

我想独立于当前调用进程使用
SHFileOperation
,这样我可以在调用
SHFileOperation
后立即关闭该进程(并返回?!),这意味着我想将其“传递”到另一个进程或窗口

我尝试了
GetDesktopWindow
句柄,以便将其“传递”到资源管理器

因此,我的问题是,如何能够调用
SHFileOperation
,在调用后立即关闭进程,而它仍在执行任务

所以我的问题是,怎么可能调用SHFileOperation,在调用之后立即关闭进程,而它仍然在执行任务

这是不可能的。如果终止进程,则
SHFileOperation
将在完成之前停止。实现这一点的唯一方法是将调用
SHFileOperation
的任务交给另一个进程


当然,您也可以让进程保持活动状态,直到
SHFileOperation
返回。您可以从流程中关闭任何其他可见的UI,并等待
SHFileOperation
完成。然后退出该进程。

使用其窗口句柄对explorer.exe执行远程线程是否可行?我只需要GUI的复制和粘贴过程就可以通过这个任务。入侵浏览器肯定不是一个好主意。启动新流程有什么问题?该系统已为此设置好。进程被很好地隔离。没有杀死用户外壳的危险。您甚至不需要创建新的可执行文件。只需启动相同的可执行文件,但命令行参数告诉它如何执行文件操作。@BenjaminWeiss请不要将其注入资源管理器。Explorer可能在与应用程序不同的安全上下文中运行,导致安全漏洞(因为文件复制到错误的上下文中)。此外,当反恶意软件看到有人将代码注入浏览器时,他们会非常紧张,因为这是恶意软件喜欢做的事情。入侵浏览器也会遇到同样的问题。将参数作为命令行参数传递。可能需要创建临时文件或内存映射文件。对于后者,您需要等待,直到另一个进程至少发出它已提取数据的信号。