我想写一个屏幕截图的应用程序,抓取屏幕快照,保存到一个文件,打开Paint.NET与该文件,然后上传当用户完成编辑在Paint.NET该文件的编辑文件的服务。如何知道用户何时在Paint.NET中完成编辑文件?
我有其他的东西排序覆盖。如何检测图像在Paint.NET中完成编辑的时间?
我正在使用.NET 3.5,C#。
我可以用一个FileSystemWatcher来检测特定文件的变化。但是第一次文件改变并不一定表明Paint.NET已经完成。我可以等待Paint.NET退出 - 我想通过检查Windows中的进程列表并检测Paint.NET何时不在那里。但是用户可以在不实际关闭Paint.NET的情况下完成编辑文件。
如果我必须告诉用户关闭Paint.NET,以表示该文件就可以上传,我想我能做到这一点。但我希望避免这种额外的要求。
如果Paint.NET保存一个文件在编辑时打开进行读取,那么我想我可以试着看看那。但是如何?也许通过轮询,试图用FileShare.None打开文件。
有没有更好的方法?
编辑 - 不,Paint.NET不保留文件打开,甚至不读。我可以打开一个图像文件FileShare.None没有问题,即使它正在被Paint.NET显示/编辑。所以这个想法是行不通的。
Paint.NET是否有一个Remoting接口,在那里我可以询问它打开了哪些文件?这将适合我的目的。