我使用RegisterHotKey Win32 API來偵聽Ctrl_V組合鍵並使用WndProc方法來處理此熱鍵通知。現在,即使除了調用base.WndProc(ref mesg)之外,我沒有在這個方法中執行任何操作,Paste操作似乎不會傳遞到Windows上,因此粘貼不起作用。我設法通過顯式調用SendKeys(「^ V」)來獲得工作粘貼,但它不適用於非文本數據。我也嘗試SendMessage Win32 API如下無法使用SendKeys或SendMessage以編程方式粘貼非文本對象
SendMessage(foregroundWindowHandle, 0x302, 0, 0);
但即使這是行不通的。
我無法弄清楚如何執行我的代碼,然後讓Windows爲圖像,文件等執行粘貼。解決此問題的任何幫助都將非常及時並得到高度讚賞。
更新:我發現問題是,正在生成粘貼命令的窗口沒有得到焦點。更正這個後,粘貼工作正常記事本。此外,我現在使用Alt_Shift_V作爲熱鍵,以避免與默認粘貼命令衝突。所以粘貼非文本數據可以正常工作。但是,將文本粘貼到Visual Studio和Office應用程序中不起作用。 SendKeys(「^ V」)似乎在這些應用程序中以不同的方式進行解釋。任何想法如何讓這個工作?
你在粘貼到的干擾:
代碼的簡單和方便的全局鉤子實現,可以發現?也許前景窗口只接受文字? – Seth 2010-02-24 21:20:13
我不完全粘貼,我只是試圖將粘貼命令傳遞到首先生成它的窗口。對於圖像,我曾嘗試使用Explorer和MS Paint。我也嘗試在Windows資源管理器中複製粘貼文件,但沒有運氣 – Sanket 2010-02-25 06:10:04