找回密码
 加入
搜索
查看: 6587|回复: 10

[系统综合] Autoit v3 Window Info工具中的Instance值是如何获取的

  [复制链接]
发表于 2012-5-11 13:30:03 | 显示全部楼层 |阅读模式
如题,这个Instance是如何计算出来的,我需要用C 来获取这个值
 楼主| 发表于 2012-5-11 21:01:50 | 显示全部楼层
自己顶!。。。。。。。。。。。。。。
发表于 2012-5-15 18:56:24 | 显示全部楼层
Autoit v3 Window Info 貌似有源码 自己看下吧·
发表于 2012-5-15 19:34:31 | 显示全部楼层
回复 3# sdc7


    请告知在哪好吗?我也非常想学习
发表于 2012-5-16 06:23:00 | 显示全部楼层
本帖最后由 happytc 于 2012-5-16 06:30 编辑

这么久了,还没有人回答呀
我又来热心一把

#include <WindowsConstants.au3>
#Include <WinAPI.au3>
#Include <WinAPIEx.au3>

Local $hGui, $Button, $hCtrl, $iInstance
$hGui = GUICreate("Get Instance", 500, 300)
$Button = GUICtrlCreateButton("Button", 10, 10, 100, 30)
$hCtrl = GUICtrlGetHandle($Button)
GUISetState()
$iInstance = _GetInstance($hCtrl)
If Not @error Then MsgBox(0, "Get instance: ", "Instance: " & $iInstance)

Func _GetInstance($hWnd)
        Local $aList, $sText, $iID = 0

        $sText = _WinAPI_GetClassName($hWnd)
        If Not $sText Then
                SetError(-1, 0, -1)
                Return
        EndIf
        
        $aList = _WinAPI_EnumChildWindows(_WinAPI_GetAncestor($hWnd, $GA_ROOT), 0)
        If @error Then 
                SetError(-2, 0, -2)
                Return
        EndIf
        
        For $i = 1 To $aList[0][0]
                If $aList[$i][1] = $sText Then $iID += 1
                If $aList[$i][0] = $hWnd Then ExitLoop
        Next
        
        If Not $iID Then 
                SetError(-3, 0, -3)
                Return
        EndIf
        
        Return $iID
EndFunc

评分

参与人数 2金钱 +70 贡献 +10 收起 理由
xms77 + 30 + 5 学习了,感谢热心人!
502762378 + 40 + 5 牛掰的热心人

查看全部评分

发表于 2012-5-17 11:32:08 | 显示全部楼层
这么久了,还没有人回答呀
我又来热心一把


谢谢,学习了
发表于 2012-5-17 21:47:45 | 显示全部楼层
回复 4# 502762378


    其实我奇怪的是,一楼的即然用C来写,居然在au3的论坛上发帖问

那么多C的论坛,并有人气都是超高的
发表于 2012-5-19 07:34:50 | 显示全部楼层
回复 7# happytc
从快乐兄的ID来看,应该是C的高手(牛掰)!
 楼主| 发表于 2012-5-23 13:01:09 | 显示全部楼层
回复  502762378


    其实我奇怪的是,一楼的即然用C来写,居然在au3的论坛上发帖问

那么多C的论坛 ...
happytc 发表于 2012-5-17 21:47


因为C论坛的根本就不知道这个工具,更不知道这个instance是什么了
 楼主| 发表于 2012-5-23 13:01:21 | 显示全部楼层
感谢大家的热心解答!!!!
发表于 2012-5-23 20:40:31 | 显示全部楼层
因为C论坛的根本就不知道这个工具,更不知道这个instance是什么了
wjz1128 发表于 2012-5-23 13:01



    又不是只有autoit的才提供这样子的功能。
别的很多编程语言都提供相应功能的软件
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-28 17:48 , Processed in 0.092123 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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