找回密码
 加入
搜索
查看: 4034|回复: 5

[系统综合] 【已解决】求助,怎么让autoit创建的窗口,自动紧靠在文本文档的右边?

[复制链接]
发表于 2012-10-6 20:50:33 | 显示全部楼层 |阅读模式
本帖最后由 fenhanxue 于 2012-10-6 23:33 编辑

求助哦,就是我autoit 建了个窗口,然后我有个已经打开的标题为“新建 - 记事本”的tet文档,
我想实现的功能是,
1、aotoit生成的窗口,一运行就自动紧挨在“新建 - 记事本”的右边缘
2、将“新建 - 记事本”最小化时,aotoit生成的窗口也一起最小化
3、将最小化的“新建 - 记事本”还原时,aotoit生成的窗口也一起还原,紧挨在“新建 - 记事本”的右边缘
应该用什么语言来实现哦?

小菜鸟发现autoit乐趣好无穷哦,下面是我建的窗口的代码,想跟“新建”紧挨着,求高手帮忙哦

谢谢veket_linux 和 xms77 亲哦,经过你们的代码点拨,我发现懂了好多,已经按照亲的指点,改好啦,再次感激哦~

修正后的代码:
Dim $i,$b,$a
Dim $List[3],$ok[4]
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
 
 
$Form1 = GUICreate("Form1", 362, 269, 262, 158)
$Input1 = GUICtrlCreateInput("Input1", 8, 8, 137, 50)
$List[1] = GUICtrlCreateList("", 160, 0, 193, 152)
GUICtrlSetData($List[1], "123")
GUICtrlSetData($List[1], "345")
GUICtrlSetData($List[1], "789")
$List[2] = GUICtrlCreateList("", 160, 160,193, 153)
GUICtrlSetData($List[2], "bhg")
GUICtrlSetData($List[2], "llj")
GUICtrlSetData($List[2], "87u")
$ok[1]=GUICtrlCreateButton("ok1",20,80,30,30)
$ok[2]=GUICtrlCreateButton("ok2",20,150,30,30)
$ok[3]=GUICtrlCreateButton("ok3",20,200,30,30)
 
 
;GUIRegisterMsg($WM_COMMAND, "MY_WM_COMMAND") 
GUISetState()
 
While 1
        ;;;;;;;;;;;;;;;;;;;;加了这段;;;;;;;;;;;;;;;;;;;;;;;;;
        WinWaitActive("新建-记事本")
        $array = WinGetPos("新建-记事本")
        If IsArray($array) Then
                WinMove("Form1", "", $array[0]+$array[2], $array[1] )
                                WinSetOnTop("Form1","",1)
        EndIf
        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd
发表于 2012-10-6 21:46:13 | 显示全部楼层

Dim $i,$b,$a
Dim $List[3],$ok[4]
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>


$Form1 = GUICreate("Form1", 362, 269, 262, 158)
$Input1 = GUICtrlCreateInput("Input1", 8, 8, 137, 50)
$List[1] = GUICtrlCreateList("", 160, 0, 193, 152)
GUICtrlSetData($List[1], "123")
GUICtrlSetData($List[1], "345")
GUICtrlSetData($List[1], "789")
$List[2] = GUICtrlCreateList("", 160, 160,193, 153)
GUICtrlSetData($List[2], "bhg")
GUICtrlSetData($List[2], "llj")
GUICtrlSetData($List[2], "87u")
$ok[1]=GUICtrlCreateButton("ok1",20,80,30,30)
$ok[2]=GUICtrlCreateButton("ok2",20,150,30,30)
$ok[3]=GUICtrlCreateButton("ok3",20,200,30,30)


;GUIRegisterMsg($WM_COMMAND, "MY_WM_COMMAND") 
GUISetState()

While 1
        ;;;;;;;;;;;;;;;;;;;;加了这段;;;;;;;;;;;;;;;;;;;;;;;;;
        WinActivate("新建 - 记事本")
        $array = WinGetPos("新建 - 记事本")
        If IsArray($array) Then
                WinMove("Form1", "", $array[0]+$array[2], $array[1] )
        EndIf
        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd
发表于 2012-10-6 22:15:13 | 显示全部楼层
Dim $i, $b, $a
Dim $List[3], $ok[4], $positon
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WindowsConstants.au3>

$positon = WinGetPos("新建文本文档.txt - 记事本", "")
If Not @error Then
        
        $Form1 = GUICreate("Form1", 362, 269, $positon[0] + $positon[2] + 3, $positon[1] + 4)
        $Input1 = GUICtrlCreateInput("Input1", 8, 8, 137, 50)
        $List[1] = GUICtrlCreateList("", 160, 0, 193, 152)
        GUICtrlSetData($List[1], "123")
        GUICtrlSetData($List[1], "345")
        GUICtrlSetData($List[1], "789")
        $List[2] = GUICtrlCreateList("", 160, 160, 193, 153)
        GUICtrlSetData($List[2], "bhg")
        GUICtrlSetData($List[2], "llj")
        GUICtrlSetData($List[2], "87u")
        $ok[1] = GUICtrlCreateButton("ok1", 20, 80, 30, 30)
        $ok[2] = GUICtrlCreateButton("ok2", 20, 150, 30, 30)
        $ok[3] = GUICtrlCreateButton("ok3", 20, 200, 30, 30)


        ;GUIRegisterMsg($WM_COMMAND, "MY_WM_COMMAND")
        GUISetState()
EndIf
While 1
        $nMsg = GUIGetMsg()

        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
        EndSwitch
        $status = WinGetState("新建文本文档.txt - 记事本", "")
        ;MsgBox(0,0,$status)
        If BitAnd($status, 16) Then WinSetState($Form1,"",@SW_MINIMIZE)
        If BitAnd($status, 8) Then WinSetState($Form1,"",@SW_RESTORE)
        Sleep(50)
WEnd
 楼主| 发表于 2012-10-6 23:35:42 | 显示全部楼层
回复 [url=http://www.autoitx.com/forum.php?mod=redirect&BColorImageLinkQuoteCodeSmilies
goto=findpost&pid=477084&ptid=35286]2#[/url] veket_linux



    谢谢亲哦,经过指点,发现恍然大悟哦~
 楼主| 发表于 2012-10-6 23:42:43 | 显示全部楼层
回复 3# xms77

谢谢亲指点哦
终于回拉,谢谢谢谢~
发表于 2013-1-16 01:56:23 | 显示全部楼层
回复 1# fenhanxue
好的东西要支持
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-29 13:18 , Processed in 0.084507 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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