找回密码
 加入
搜索
查看: 5502|回复: 13

[IE类操作] [已解决]如何根据ie对象获取窗口句柄

 火.. [复制链接]
发表于 2012-1-4 17:03:28 | 显示全部楼层 |阅读模式
本帖最后由 漫反射 于 2012-1-6 13:03 编辑

用au3调用默认浏览器打开一个地址可以返回其对象来进行ie操作,那有没有办法用这个对象来进行窗口操作呢,也就是如何得到窗口句柄
发表于 2012-1-4 17:17:15 | 显示全部楼层
最近正在学习IE操作.
#include <IE.au3>
$oIE = _IECreate('$url')

这个就是你想要的吗?

评分

参与人数 1金钱 +10 收起 理由
漫反射 + 10

查看全部评分

发表于 2012-1-4 17:19:12 | 显示全部楼层
$oIE.hwnd

评分

参与人数 2金钱 +20 贡献 +1 收起 理由
漫反射 + 20
lynfr8 + 1

查看全部评分

 楼主| 发表于 2012-1-4 17:26:01 | 显示全部楼层
回复 3# 风行者

这个才是我想要的,多谢
 楼主| 发表于 2012-1-4 17:27:54 | 显示全部楼层
回复 2# user3000

$oIE . hwnd    这个就是我想的,多谢参与
发表于 2012-1-4 17:49:30 | 显示全部楼层
风行者 发表于 2012-1-4 17:19



    谢谢, 学习了!
 楼主| 发表于 2012-1-4 20:07:53 | 显示全部楼层
本帖最后由 漫反射 于 2012-1-4 20:46 编辑
风行者 发表于 2012-1-4 17:19

为什么不能关闭这个窗口?


#include<ie.au3>
Run(@ProgramFilesDir&'\Internet Explorer\iexplore.exe www.baidu.com')
Sleep(5000)
$IE = _IEAttach("http://www.baidu.com","url")
MsgBox(0,0,@error)
MsgBox(0,0,$IE.hwnd)
WinKill($IE.hwnd)
发表于 2012-1-5 01:23:27 | 显示全部楼层
回复 7# 漫反射
If ProcessExists("iexplore.exe") Then ProcessClose("iexplore.exe")
Run(@ProgramFilesDir&'\Internet Explorer\iexplore.exe www.baidu.com')
Sleep(5000)
Local $list1 = WinList("[class:IEFrame]")
$oIE = _IEAttach($list1[1][1],"hwnd")
_IEQuit($oIE)
原来winkill 也可以这样用

评分

参与人数 2金钱 +29 贡献 +1 收起 理由
漫反射 + 20
lynfr8 + 9 + 1

查看全部评分

发表于 2012-1-5 08:30:14 | 显示全部楼层
回复  漫反射 原来winkill 也可以这样用
tsys 发表于 2012-1-5 01:23


运行错误:
$oIE = _IEAttach($list1[1][1],"hwnd")
$oIE = _IEAttach(^ ERROR
何解?

评分

参与人数 1金钱 +10 收起 理由
漫反射 + 10

查看全部评分

发表于 2012-1-5 08:32:45 | 显示全部楼层
为什么不能关闭这个窗口?
漫反射 发表于 2012-1-4 20:07



    把最后一行 winkill 改为 _IEQuit 就可以.

评分

参与人数 1金钱 +30 贡献 +5 收起 理由
漫反射 + 30 + 5

查看全部评分

发表于 2012-1-5 11:46:41 | 显示全部楼层
回复 9# user3000


      首先你了解为啥要sleep(5000),,你把sleep语句去掉,然后你用_arraydisplay($list) 就明白为什么了, 如果winlist获取不到句柄,自然_IEattach无效,
个人理解,仅供参考

评分

参与人数 1金钱 +10 贡献 +5 收起 理由
漫反射 + 10 + 5

查看全部评分

发表于 2012-1-26 16:07:23 | 显示全部楼层
其实风行的做个改进就行了,HWND($oIE.hwnd)
发表于 2012-12-19 15:26:22 | 显示全部楼层
#include<ie.au3>
Run(@ProgramFilesDir&'\Internet Explorer\iexplore.exe www.baidu.com')
Sleep(2000)
$IE = _IEAttach("http://www.baidu.com","url")
MsgBox(0,0,$IE.hwnd)
_IEQuit($IE) 



这样测试没有问题,WIN7系统64位的。网址那里去掉 [url][/url]
发表于 2012-12-20 16:12:53 | 显示全部楼层
#include "IE.au3"
#Include <Array.au3>
If ProcessExists("iexplore.exe") Then ProcessClose("iexplore.exe")
Run(@ProgramFilesDir&'\Internet Explorer\iexplore.exe www.baidu.com')
sleep(5000)
Local $list1 = WinList("[class:IEFrame]")
$oIE = _IEAttach($list1[1][1],"hwnd")
_IEQuit($oIE)
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-29 15:32 , Processed in 0.134493 second(s), 33 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表