我要在WPF里實作從表單里面拖拽一個檔案出去,在拖拽釋放的時候判斷我釋放檔案的目標物件是否為我指定的軟體,如果是則將該檔案打開,如果不是指定的軟體就什么都不做。(例如:我從WPF表單里拖拽一個123.txt檔案出來,釋放滑鼠的時候要判斷目標軟體是否為notepad,如果是notepad就直接打開123.txt這個檔案,如果不是,則不做任何操作)。找了些資料,都說要用滑鼠鉤子。請教各位大神怎么實作啊?
uj5u.com熱心網友回復:
我覺得,拖動一個檔案到某個軟體圖示上自動使用該軟體打開,應該是該軟體自己應該實作的功能。而不是由你第三方去實作的。如果一個軟體沒有提供打開檔案的命令呢?
uj5u.com熱心網友回復:
憑什么txt只能用記事本打開?ie就不能打開了嗎?寫字板就不能打開了嗎?uj5u.com熱心網友回復:
我的WPF客戶端關鍵是要保護客戶提供的Photoshop一些如:筆觸、濾鏡之類的插件檔案,不能讓用戶直接獲取到我這些檔案。
如果直接拖動出來放到桌面上或是其他地方,那就會造成客戶的檔案被未授權使用
我只是拿txt來舉個例子而已。我的WPF實作的本身是拖拽的Photoshop的一些比如:筆觸、濾鏡之類的插件檔案。
uj5u.com熱心網友回復:
別人就不會另存為嗎?uj5u.com熱心網友回復:
除非整套軟體都是自己開發,檔案格式只有自己的軟體能讀懂uj5u.com熱心網友回復:
不是有個MouseLeftButtonDown和UP事件嗎,down的時候記錄下檔案,up的時候就可以知道了,試試看?uj5u.com熱心網友回復:
某些擴展名的檔案不能拖拽不就完了uj5u.com熱心網友回復:
為什么總是有人去質疑題主“為什么要這樣做”,我覺得人家既然問了,肯定是有原因,想知道的只是“如何這樣做”而已。
如果但凡提問非要把“為什么要這樣做”都闡述明白,是不是太麻煩了些,確實有些需求是乍一看很不合理但是在特定的場景中有存在的必要的。
uj5u.com熱心網友回復:
判斷這個被選中的圖示是什么軟體好像有點難啊。參考這個鏈接,沒仔細研究
https://devblogs.microsoft.com/oldnewthing/?p=38393
uj5u.com熱心網友回復:
鉤子或GetCursorPos獲取滑鼠坐標,再用WindowFromPoint獲取視窗句柄uj5u.com熱心網友回復:
呃,你到底是要拖動到explorer中那個程式的圖示上,還是拖到那個程式上啊uj5u.com熱心網友回復:
對了,要是拖到那個程式上,如果那個程式在DragEnter/DragMove讀取資料,之后再判斷就已經晚了轉載請註明出處,本文鏈接:https://www.uj5u.com/net/99191.html
標籤:C#
下一篇:c#星星
