如何在C#中检测任何文件何时被附加/上载到电子邮件客户端或web浏览器中的电子邮件?

如何在C#中检测任何文件何时被附加/上载到电子邮件客户端或web浏览器中的电子邮件?,c#,file,email,pdf,email-attachments,C#,File,Email,Pdf,Email Attachments,在浏览器或任何电子邮件客户端中将任何文件附加到电子邮件时,如何检测该事件?附加文件时,windows或浏览器中运行的进程是什么?换句话说,上传文件的过程是什么?如何从c代码中检测该进程?是否有任何方法可以使用FileSystemWatcher检测此事件或进程?简单地说,没有。上传一个文件所做的就是打开它,所以理论上你能做的最好的事情就是找到打开文件的过程并使用启发式方法。然而,文件系统监视程序是用来监视文件的变化,而最接近的是找出哪个进程正在打开一个文件,它将使用外部工具HOLLIE.EXE,或

在浏览器或任何电子邮件客户端中将任何文件附加到电子邮件时,如何检测该事件?附加文件时,windows或浏览器中运行的进程是什么?换句话说,上传文件的过程是什么?如何从c代码中检测该进程?是否有任何方法可以使用FileSystemWatcher检测此事件或进程?

简单地说,没有。上传一个文件所做的就是打开它,所以理论上你能做的最好的事情就是找到打开文件的过程并使用启发式方法。然而,文件系统监视程序是用来监视文件的变化,而最接近的是找出哪个进程正在打开一个文件,它将使用外部工具HOLLIE.EXE,或者C++中的NTQueSealStices信息不断地轮询它的状态。(也就是说,你为什么关心文件是否被上传?)每当文件被附加/上传到任何电子邮件客户端或网络浏览器中的电子邮件(如gmail、yahoomail)时,我都想跟踪并登录到数据库。如果你担心公司安全,您可以查看对网关的监控以及NTFS审核—这两个主题都太大,无法在这里作为答案进行讨论(可能与我无法轮询特定文件更相关。每当任何pdf文件被附加到电子邮件时,我都想检测并以文件附加事件的形式登录到数据库。这就是为什么我说真的没有办法,我只是提供一些理论方法来“破解它”对于一个文件,但一般来说,你想做的是不可能的,即使是用于文件审核的操作系统服务也无法判断文件何时被用作电子邮件附件。也许你可以编写某种系统来捕获未加密电子邮件的内容,以获得mime类型并在事后识别它们,或者编写一个browser插件可以做类似的事情,但一般来说,这是不可能的。如果这是为了阻止企业上传,请查看Outlook。