怎么判断QQ已经登陆过了
如下,是自己弄得QQ2010自动登录代码:Run("E:\QQ\Bin\QQ.exe")WinWaitActive("QQ2010")
ControlSend("QQ2010", "", "", "1153646466")
ControlFocus("QQ2010", "", "")
Sleep(2000)
Send("123456")
ControlCommand("QQ用户登录","","Button16","Check")
Send("{DOWN 6}")
send("{ENTER}")怎么在自动登录QQ之前判断这个QQ号是否登录了,如果登录过了则提示已经登录并退出,如果没有登录就继续登录。大家帮帮忙,刚刚学AU3,不懂哈。 如果QQ已经登陆了再次登陆的时候会提示QQ已经登陆,你可以获取是否弹出该窗口来判断 本帖最后由 19377708 于 2010-9-10 23:48 编辑
$QQ = 1153646466
Run("E:\QQ\Bin\QQ.exe")
WinWaitActive("QQ2010")
ControlSend("QQ2010", "", "", $QQ)
Send("123456")
send("{ENTER}")
sleep(100)
$pdi = WinGetProcess("提示")
If WinExists("提示") Then
ProcessClose($pdi)
MsgBox(0,"QQ:" & $QQ & "已登录","QQ:" &$QQ & "已登录")
EndIf 登陆qq后,拖盘里会有qq的ico图标,鼠标放在图标上会有tooltip提示,每个QQ号的提示也不相同,这个可以作为检测QQ是否登陆的方法,
大家都知道拖盘也是一个窗口,可以很方便地得到句柄,再用_GUIToolTip_GetText获取ToolTip的文本,再对比一下是否有指定的QQ号码存在即可。 谢谢提点哦,回去试试先。
$value = InputBox("检测QQ是否已经登陆", "不支持QQ2008及更老版本"&@CR&"请输入QQ号码", "")
if $value = "" then exit
$objWMIService = ObjGet("winmgmts:\\" & "." & "\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Process")
For $objItem In $colItems
local $processData = ($objItem.Caption & "|" &$objItem.Handle &"|" &$objItem.CommandLine)
if $objItem.Caption = "qq.exe" then
$exc = StringReplace($objItem.CommandLine,'"', '')
$exc = StringLeft($exc,StringInStr($exc, "\bin\qq.exe"))&"Users\"&$value
If FileExists($exc&"\MicroBlogMsg.db") Then
if FileCopy($exc&"\MicroBlogMsg.db",@TempDir&$value,1) = 0 then
msgbox(0,"","QQ:"&$value&" 已登陆!")
else
FileDelete(@TempDir&$value)
endif
exit
EndIf
endif
Next
每登录一次记一下PID值可能可以吧,嘿嘿
或者就是查看QQ安装目录有没有这个号码文件夹也行 每登录一次记一下PID值可能可以吧,嘿嘿
或者就是查看QQ安装目录有没有这个号码文件夹也行
3131806 发表于 2010-9-15 11:08 http://www.autoitx.com/images/common/back.gif
这个好象不行吧
xsjtxy 发表于 2010-9-11 14:18 http://www.autoitx.com/images/common/back.gif
能解释下语句吗 回复 9# liufenglg
是判断 登陆后的qq号码会产生对应的文件 吧。。 登陆后的qq号码会产生对应的文件 ,但退出QQ这文件还是存在的吧 回复 6# xsjtxy
是不是用到对象的?有没有相关的教程呢,想学学
页:
[1]