我有一個C#應用程序,需要使用runas升級才能運行某些功能。我現在遇到的問題是,我有一個拖放的picturebox在runas後不工作。我一整晚都在讀帖子,所以我很熟悉這個原因。我還發現了許多有關通過過濾器接受這些消息的信息。 http://msdn.microsoft.com/en-us/library/ms632675(v=VS.85).aspx從用戶進程拖放到提升進程
我還沒有找到什麼,我希望有人可以幫助我,這是如何以及在代碼的哪裏實現這一點。我一直在嘗試各種方法,但無法實現。這裏有一段代碼,我試圖讓這個工作。順便說一下,我也嘗試用清單中的篩選器進行更改,但是也沒有去那裏。預先感謝任何人可以提供的幫助。
public partial class Form1 : Form
{
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr ChangeWindowMessageFilter(uint message, uint dwFlag);
public Form1()
{
InitializeComponent();
ChangeWindowMessageFilter(WM_DROPFILES, MSGFLT_ADD);
ChangeWindowMessageFilter(WM_COPYDATA, MSGFLT_ADD);
ChangeWindowMessageFilter(0x0049, MSGFLT_ADD);
GetAndDisplayRights();
}
private const uint WM_DROPFILES = 0x233;
private const uint WM_COPYDATA = 0x004A;
private const uint WM_COPYGLOBALDATA = 0x0049;
private const uint MSGFLT_ADD = 1;
嗨,我不知道完整的答案,但更好地檢查ChangeWindowMessageFilter方法的文檔,你打電話給它,但你沒有做任何與它的返回值... – 2011-03-09 18:54:45
從我在我的研究中發現,諸如「ChangeWindowMessageFilter(WM_DROPFILES,MSGFLT_ADD)」,「是那些指示過濾器允許消息通過的人。還有更多?我會繼續挖掘。 – GeneK 2011-03-09 19:14:22