我想寫一個屏幕截圖的應用程序,抓取屏幕快照,保存到一個文件,打開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接口,在那裏我可以詢問它打開了哪些文件?這將適合我的目的。