为什么WinClose($Hwnd)不能关掉窗口?[已解决]
本帖最后由 cashiba 于 2017-3-18 09:29 编辑Run("calc.exe","", @SW_SHOWMAXIMIZED)
local $Hwnd = WinGetHandle("计算器")
sleep(3000)
WinActive($Hwnd)
sleep(1000)
WinClose($Hwnd)以上代码运行过程中,有几个小问题:
1、帮助文件中,@SW_MINIMIZE = 最小化窗口。而示例中,使用的是@SW_SHOWMINIMIZED。两者兼容吧?
2、@SW_MINIMIZE = 最小化窗口,在本例中好像没有起作用,并没有最小化到任务栏。
3、WinClose($Hwnd),这一句不能关掉窗口,why?
4、WinKill($Hwnd),也不能关闭窗口。
都说句柄精确....
Run之后没有等待/判断,$hWnd 肯定无效,后面就不用说了 Run之后没有等待/判断,$hWnd 肯定无效,后面就不用说了
afan 发表于 2016-12-14 20:38 http://www.autoitx.com/images/common/back.gif
还是A大经验丰富.....
{:face (88):}
run后必延时,这下记住了.......
是在测试下面的代码中,得不到结果,才单独开关窗口看看哪里有问题的#include <WinAPI.au3>
#include <SendMessage.au3>
Run("calc.exe","", @SW_MAXIMIZE)
sleep(1000)
local $Hwnd = WinGetHandle("计算器")
Sleep(1000)
Local $iPID = Run("notepad.exe", "", @SW_SHOWMAXIMIZED)
Sleep(1000)
;-------点击清除键C
_SendMessage(_WinAPI_GetDlgItem($Hwnd, 81), 0x0201, 0)
_SendMessage(_WinAPI_GetDlgItem($Hwnd, 81), 0x0202, 0)
;-------点击5
_SendMessage(_WinAPI_GetDlgItem($Hwnd, 135), 0x0201, 0)
_SendMessage(_WinAPI_GetDlgItem($Hwnd, 135), 0x0202, 0)
;-------点击+
_SendMessage(_WinAPI_GetDlgItem($Hwnd, 93), 0x0201, 0)
_SendMessage(_WinAPI_GetDlgItem($Hwnd, 93), 0x0202, 0)
;-------点击5
_SendMessage(_WinAPI_GetDlgItem($Hwnd, 135), 0x0201, 0)
_SendMessage(_WinAPI_GetDlgItem($Hwnd, 135), 0x0202, 0)
;-------等于
_SendMessage(_WinAPI_GetDlgItem($Hwnd, 121), 0x0201, 0)
_SendMessage(_WinAPI_GetDlgItem($Hwnd, 121), 0x0202, 0)
;操作是点击:5+5=
ProcessClose($iPID)
sleep(1000)
WinActive($Hwnd)
sleep(1000)
MsgBox(262208,"看到了没有","结果是10吧!",3,$Hwnd)
WinClose($Hwnd)以上代码来源于:http://www.autoitx.com/forum.php?mod=viewthread&tid=20836&extra=&highlight=%BA%F3%CC%A8&page=1
后台点击总是没反应。跟操作系统有关系吗?win7的系统.....
A大空了帮看看.... 另外这个
Run("calc.exe","", @SW_MINIMIZE)或Run("calc.exe","", @SW_SHOWMINIMIZED)
感觉不起作用。
而
Run("notepad.exe","", @SW_MINIMIZE)
却正常.
晕了............... 结束进程的方式关闭比较好一点,窗口关闭可能有些程序只是最小化而没有关闭啊。以下是进程关闭程序Example()
Func Example()
; 最大化窗口运行记事本程序.
Local $iPID = Run("notepad.exe", "", @SW_SHOWMAXIMIZED)
; 延迟 10 秒, 等待记事本窗口出现.
WinWait("", "", 10)
; 等候 2 秒.
Sleep(2000)
; 使用 Run() 返回的进程 PID 关闭记事本程序.
ProcessClose($iPID)
EndFunc ;==>Example
本帖最后由 229989799 于 2016-12-16 13:50 编辑
最小化窗口 _WinAPI_ShowWindow,请自己看帮助 最小化窗口 _WinAPI_ShowWindow,请自己看帮助
229989799 发表于 2016-12-16 13:48 http://www.autoitx.com/images/common/back.gif
Run("calc.exe","", @SW_MINIMIZE)或Run("calc.exe","", @SW_SHOWMINIMIZED)
这个为啥看不到最小化效果?
页:
[1]