找回密码
 加入
搜索
查看: 1965|回复: 6

如何使一个指定的窗口永远在最下层?

[复制链接]
发表于 2009-3-22 12:01:59 | 显示全部楼层 |阅读模式
这个为题的情景是这样的,先建立了一个背景界面(全屏),然后通过 RunWait 运行 Ghost ,此时如果使用鼠标点击背景界面,Ghost 的窗口就会被背景窗口覆盖,如何设置这个背景窗口,使其永远在新窗口的下面?

好像AU3没有设置窗口在最下层的命令?

谢谢。
发表于 2009-3-22 12:06:26 | 显示全部楼层
AU3没有 但是API可以 自己搜索一下吧 有一个窗口一直在最上层的帖子

再去MSDN上看看相关的函数解释 自己就能搞定了
就是这个api函数SetWindowPos

[ 本帖最后由 xrbenbeba 于 2009-3-22 12:08 编辑 ]
发表于 2009-3-22 16:45:56 | 显示全部楼层

Func _SetParent($TitleP, $TitleC)
    If WinExists($TitleP) Then
        If WinExists($TitleC) Then
            $HwndP = WinGetHandle($TitleP)
            $HwndC = WinGetHandle($TitleC)
                        DllCall("user32.dll", "str", "SetParent", "HWnd", $HwndP, "HWnd", $HwndC)
            Return 1
        Else
            Return -1
        EndIf
    Else
        Return -1
    EndIf
EndFunc

使用方法

_SetParent(你的句柄, "Program Manager")

评分

参与人数 1金钱 +5 收起 理由
pusofalse + 5

查看全部评分

 楼主| 发表于 2009-3-22 17:20:34 | 显示全部楼层
谢谢楼上的两位,自己在消化学习下。
发表于 2009-3-22 18:50:31 | 显示全部楼层

回复 3# ceoguang 的帖子

SetParent这个函数的返回值是hwnd类型吧,不过改为别的貌似也无大碍~
也不必加If WinExists()判断,因为SetParent自己会判断吧~?

[ 本帖最后由 pusofalse 于 2009-3-22 18:53 编辑 ]
发表于 2009-3-23 08:21:57 | 显示全部楼层
嗯 原理就是把桌面设置成程序的父窗口
发表于 2009-11-25 19:30:43 | 显示全部楼层
那要如何还原成原来的样子呢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-27 02:35 , Processed in 0.095792 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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