也許有點晚了一個回答你的問題,但仍然在這裏的答案,我似乎找到了:
[System.Runtime.InteropServices.DllImport("user32.dll", SetLastError = true)]
static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
[System.Runtime.InteropServices.DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindowEx(IntPtr hP, IntPtr hC, string sC, string sW);
void MakeWin()
{
IntPtr nWinHandle = FindWindowEx(IntPtr.Zero, IntPtr.Zero, "Progman", null);
nWinHandle = FindWindowEx(nWinHandle, IntPtr.Zero, "SHELLDLL_DefView", null);
SetParent(Handle, nWinHandle);
}
「MakeWin」應在窗體的構造函數調用,最好之前「的InitializeComponent」。 至少在Win7下適合我。
所以當用戶點擊「顯示桌面」時,你的小工具是隱藏的?聽起來似乎對我來說很合理,因爲當我點擊顯示桌面時,內置小工具不會隱藏,因此您不希望發生這種情況。這是一個「真正的」小工具嗎?我以爲他們是HTML,但你提到最頂級的形式... – 2012-04-04 10:52:44
這是一個Winforms應用程序。我最初嘗試製作一個「側邊欄」/桌面小工具,但使用C#我感覺更加舒適,無論我對樣式表和其他東西感到困惑,我也無法讓它看起來像我想要的樣子。我放棄了它,並決定嘗試製作自己的獨立小工具。 – robhol 2012-04-04 11:03:45
我不認爲winforms是你想要實現的方式。最好用html – nawfal 2012-04-04 12:25:16