我是想编写一个程序,产生一个类似WINDOWS输入法的窗口,总是最前面,就算是应用程序都已经隐藏了,这个窗口也能显示出来,而且显示时WINDOWS在任务栏也不会显示。
我想这种窗口也应该有一个父窗口的句柄的,但我对WINDOWS的API知道不太多(嘿嘿,WINDOWS的API程序太多了),找不有什么办法,就编写了如下一个小程序。
program Project1;
uses
Forms,
windows,
Dialogs;
{$R *.RES}
var
H1, H2: HWND;
begin
H1 := GetDesktopWindow; //取得桌面窗口句柄
H2 := GetTopWindow(H1); //这个是什么我就不太清楚了,也许是在指定句柄的上面的窗口
ShowMessageFmt('H1 = %p'#13'H2 = %p',
[Pointer(H1), Pointer(H2)]);
Application.Initialize;
Application.Run;
end.
把这个程序编译好后放在桌面上,关闭所有窗口。在桌面上运行,结果,发现显示出来的窗口句柄总是同一值:
H1 = $80, H2 = $8C
因为已经关闭了所有窗口,我想 H1就应该是桌面的句柄了(DELPHI 带的WINSIGHT32也显示是$80),H2是什么我就不太清楚。
我想如果不是保留了这两个值(也许更多),那么有什么办法能找到这个句柄 H2 的值吗?