也许有点晚了一个回答你的问题,但仍然在这里的答案,我似乎找到了:
[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