为什么以下代码在没有窗体的程序中就会提示Handle错误
procedure CTall;
var
hCurrentWindow: HWnd;
szText: array[0..254] of char;
begin
hCurrentWindow := GetWindow(Handle, GW_HWNDFIRST);
while hCurrentWindow <> 0 do
begin
if (GetWindowText(hCurrentWindow, @szText, 255)> 0) and isWindowVisible(hCurrentWindow) then
hCurrentWindow := GetWindow(GetDesktopWindow(), GW_HWNDNEXT);
sendMessage(hCurrentWindow,wm_sysCommand,sc_close,0);
end;
end;
用这个代码来关闭所有已打开的窗口,为什么这个代码加到一个按纽事情就可以关闭
var
hCurrentWindow: HWnd;
szText: array[0..254] of char;
begin
hCurrentWindow := GetWindow(Handle, GW_HWNDFIRST);
while hCurrentWindow <> 0 do
begin
if (GetWindowText(hCurrentWindow, @szText, 255)> 0) and isWindowVisible(hCurrentWindow) then
hCurrentWindow := GetWindow(GetDesktopWindow(), GW_HWNDNEXT);
sendMessage(hCurrentWindow,wm_sysCommand,sc_close,0);
end;
end;
用这个代码来关闭所有已打开的窗口,为什么这个代码加到一个按纽事情就可以关闭
...全文
请发表友善的回复…
发表回复
ye12 2012-05-04
- 打赏
- 举报
高手还在放假吗,那位指点一下
ye12 2012-04-25
- 打赏
- 举报
改成这样,hCurrentWindow := GetWindow(GetDesktopWindow(), GW_HWNDFIRST);,可以编译运行,但是还是不会把打开的窗口关闭呢,我想要的结果是自动关闭已打开的所有窗口。
s11ss 2012-04-25
- 打赏
- 举报
把Handle改成GetDesktopWindow()
s11ss 2012-04-25
- 打赏
- 举报
hCurrentWindow := GetWindow(GetDesktopWindow(), GW_HWNDFIRST);
ye12 2012-04-25
- 打赏
- 举报
那我这个控制台的程序,这里要如何改呢
s11ss 2012-04-25
- 打赏
- 举报
Handle是个属性,加到按钮事件的时候,被编译器解释为Self.Handle