C# C:控制文件传输*

C# C:控制文件传输*,c#,pinvoke,windows-explorer,file-transfer,C#,Pinvoke,Windows Explorer,File Transfer,我希望有一个程序在后台运行,监听任何文件传输,然后取消explorer的文件传输机制,并启动自己的程序 我该怎么做?有什么dll我可以用pinvoke吗 为什么? 在此过程中筛选某些类型的文件。自动地,或在提示下。 所有重复传输选项均为“否”。 登录中。 不必每次传输文件时都启动程序。 进一步了解引擎盖下的情况。 不要依赖第三方程序。 我将来想到的任何附加功能。 * 所谓文件传输,我指的是通过拖放方式移动/复制文件/文件夹,但我只关心从磁盘到磁盘的文件传输,而不是从internet的文件传输。定

我希望有一个程序在后台运行,监听任何文件传输,然后取消explorer的文件传输机制,并启动自己的程序

我该怎么做?有什么dll我可以用pinvoke吗

为什么?

在此过程中筛选某些类型的文件。自动地,或在提示下。 所有重复传输选项均为“否”。 登录中。 不必每次传输文件时都启动程序。 进一步了解引擎盖下的情况。 不要依赖第三方程序。 我将来想到的任何附加功能。 * 所谓文件传输,我指的是通过拖放方式移动/复制文件/文件夹,但我只关心从磁盘到磁盘的文件传输,而不是从internet的文件传输。

定义文件传输

是否要嗅探ftp、http请求?浏览器也复制吗?仅在本地还是在网络上

我认为这肯定会变得脆弱。您最好的选择是,如果资源管理器允许您通过网络连接到文件复制操作中。我不确定是否能做到

请参阅以获取起点


在我开始之前,请参见:这将是一个糟糕的结局,但无论如何:

对于Vista/7:

你需要上钩

从中选择,然后从中更改所需内容


然而,这在XP上不起作用,而且可能非常脆弱,在某些PC上可以工作,而在其他PC上则不行,因为从API的角度来看,在windows上有数百万种方法可以做同样的事情。

Shift+No通常对所有人都是一样的,正如您所知;你是指Internet Explorer还是Windows Explorer?@minitech:太好了,谢谢@罗伯特·哈维:windows资源管理器。@罗伯特:我认为这应该是一个答案,而不是一个评论。罗伯特,你的补充很优雅。你能详细解释一下你所说的“它一定会变脆”是什么意思吗?或者为什么它会变糟?你正在试图修改操作系统。只有当操作系统设计为允许您这样做时,这才会起作用。你能到的最近的地方是钩探险家;不过,一般来说,这并不能让您控制文件传输,因为有些传输不会触发钩子。此外,还会有一些边界情况,比如钩子不能做你想做的事情,或者严重干扰其他软件,比如说,当你的病毒扫描程序想要隔离一个文件时,你不希望钩子触发。简而言之:如果这是一个安全关键部分,不要这样做。如果方便的话,选择ICopyHook选项+1 Hear。这是我连续第二天看到你的答案具有预言般的真实性——但我无法证明这一点——你知道我真的把它编码了吗?我有它在工作,最复杂的部分是在图中插入时创建递归。我想某处还是有一只虫子。如果我不忘的话,周一我会把它贴在那里。我更喜欢摆弄算法而不是正确的编码,只是为了证明我的假设是正确的。像这样浪费两个小时的时间