bulkmilk 发表于 2024-5-2 17:51:35

怎么操作无标题的窗口里的链接


想做个自动注册的脚本,CAD2019,第一次启动会有个无标题的窗口,能操作里面的链接吗?


afan 发表于 2024-5-3 13:45:09

这种界面可以使用找色点的坐标点击。那几个字的蓝色很独特,搜该窗口的颜色 0x0696DE 即可,快得很

bulkmilk 发表于 2024-5-4 11:46:30

afan 发表于 2024-5-3 13:45
这种界面可以使用找色点的坐标点击。那几个字的蓝色很独特,搜该窗口的颜色 0x0696DE 即可,快得很 ...

已经可以按颜色查找到位置
Local $aCoord = PixelSearch(0, 0, 1920, 1440, 431831)
MouseMove($aCoord, $aCoord)

但还有个问题,没有窗口标题,不知道怎么判断这个窗口已经出现了,因为有的时候每台机器配置不一样,运行软件的速度不一样,导致跳出这个界面的时间不统一, 让程序等待2分钟再找色块也可以解决,但不是好方法。

afan 发表于 2024-5-4 13:27:41

无标题就用高级模式(窗口类)

bulkmilk 发表于 2024-5-4 20:29:40

afan 发表于 2024-5-4 13:27
无标题就用高级模式(窗口类)

    If WinExists("") Then
      MsgBox($MB_SYSTEMMODAL, "", "窗口已存在")
    Else
      MsgBox($MB_SYSTEMMODAL + $MB_ICONERROR, "Error", "窗口不存在")
    EndIf

找不到窗口

bulkmilk 发表于 2024-5-4 22:08:03

发现有个进程出现第4次时,就会跳出这个窗口。现在判断进程数量后,再执行。


#include <AutoItConstants.au3>

Run("C:\Program Files\Autodesk\AutoCAD 2019\acad.exe /product ACAD /language 'zh-CN'")

Global $processNum = 0

While 1 ;使用无限循环, 其中将调用 ExitLoop
        waitProcess()
        If $processNum = 4 Then ExitLoop
        Sleep(200)
WEnd

Sleep(1000)

Local $aCoord = PixelSearch(0, 0, @DesktopWidth, @DesktopHeight, 431831)
Sleep(1000)
MouseClick($MOUSE_CLICK_LEFT, $aCoord, $aCoord)


Func waitProcess()
        Local $aProcessList = ProcessList("acwebbrowser.exe")
        For $i = 1 To $aProcessList
        Next
       
        $processNum = $i - 1
EndFunc   ;==>waitProcess


afan 发表于 2024-5-4 22:33:54

WinWait("")

bulkmilk 发表于 2024-5-5 12:35:17

afan 发表于 2024-5-4 22:33
WinWait("")

那个类别会变动{:3_101:}
这回变成了_LGSDialog2928





bulkmilk 发表于 2024-5-5 12:40:30

想到用正值表达式,现在已经找到了。
WinExists("")

谢谢
页: [1]
查看完整版本: 怎么操作无标题的窗口里的链接