【发布时间】:2010-12-30 07:00:21
【问题描述】:
我有一个使用 Spy++ 找到的窗口的十六进制值。
值为:00010010
感谢我之前提出的问题的答案,我有这个代码:
IntPtr hwndf = this.Handle;
IntPtr hwndParent = FindWindow("WINDOW HERE", null); ;
SetParent(hwndf, hwndParent);
this.TopMost = false;
现在,据我了解,IntPtr hwndParent 将包含窗口 WINDOW HERE 的句柄。如何重写该行以使用我的十六进制句柄?我试过了:
IntPtr hwndParent = (IntPtr) 0x00010010
但它没有工作。有什么想法吗?
【问题讨论】:
-
值看起来有点像二进制数。你能确认这实际上是一个十六进制值吗?
-
对于应该表示句柄的指针来说,这是一个非常小的数字。我怀疑您获得的价值有问题。
-
它是桌面的句柄:P
-
获取桌面句柄的方法是使用
GetDesktopWindow,而不是FindWindow。我几乎可以肯定这不是正确的处理方式。我可能应该补充一点,桌面窗口很特别,有很多事情你不能用它来做(到底什么“不起作用”?) -
好吧,当我使用 spy++ 时,我查看了 Progman 进程。它有一个子进程 DefView 和一个子进程 SysListView32。我试图让窗口出现在 syslistview32 下方。