求高手出现,实现如此【超级置顶】的方法
本帖最后由 sanmoking 于 2010-7-31 23:58 编辑上图是窗体正常的置顶状态(就那个notepad2的窗体)再怎么置顶都挡不住后面窗口的菜单项,本人用au3自带的置顶功能,用顽固不化提供的dll的方法,也只能达到这样的效果。
现在求能达到上述画面的方法(au3能实现的,且占用资源很小的),超级置顶的方法,能挡住菜单项的方法。谢谢。
刚才发现该函数和最佳答案的函数是一样的效果,_WinAPI_BringWindowToTop($Form1)
这是最后一个问题,已解决,完成的程序将在源码区公布,谢谢大家参与。。。
完成的程序见【鼠标傀儡】 不多说,上源#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.6.1
Author: myName
Script Function:
Template AutoIt script.
#ce ----------------------------------------------------------------------------
; Script Start - Add your code below here
#Include <WinAPI.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("我就是这么犀利,谁能挡住我?还有谁?", 623,200, 192, 114)
GUISetState(@SW_SHOW)
While 1
$hw=_WinAPI_GetForegroundWindow()
If $hw<>$Form1 Then
_WinAPI_SetWindowPos($hw, -2, 0, 0, 0, 0, 3)
EndIf
_WinAPI_SetWindowPos($Form1, -1, 0, 0, 0, 0, 3)
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd 本帖最后由 xsjtxy 于 2010-7-30 14:18 编辑
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 623, 449, 192, 114,$WS_EX_APPWINDOW,$WS_EX_TOPMOST)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
本帖最后由 sanmoking 于 2010-7-30 13:47 编辑
回复 2# xsjtxy
大侠试过了么。我想要的是前置窗口能盖过菜单条。 学习了 继续努力 楼主真是有钱人…… #include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 615, 438, 192, 124)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
WinSetOnTop ( "Form1", "", 1 )
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd歪脑筋? 回复 6# 大绯狼
你的例子是可以的,可是我的窗口无效。
$Form1 = GUICreate("傀儡鼠标", $Width, $Height, $a, $b, $WS_POPUP, BitOR($WS_EX_TRANSPARENT,$WS_EX_LAYERED,$WS_EX_TOPMOST), WinGetHandle(AutoItWinGetTitle())) 都透明了你还能看见? WinSetOnTop("Form1", "", 1)要学习精髓,重点是这一行循环执行。。。 歪脑筋?
大绯狼 发表于 2010-7-31 00:39 http://www.autoitx.com/images/common/back.gif
这个窗体有时有其它置顶层出现,会闪一下
Ie的弹出窗口就可以一直置顶,而且不会闪 很有创意啊。不错。值得学习
很多时候我们就是缺少给思想转个弯的灵感 歪脑筋?
大绯狼 发表于 2010-7-31 00:39 http://www.autoitx.com/images/common/back.gif
楼主给钱
你这段也挡不住我. 回复 13# akmm88
无意战争,只是纯技术讨论。#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.6.1
Author: myName
Script Function:
Template AutoIt script.
#ce ----------------------------------------------------------------------------
; Script Start - Add your code below here
#Include <WinAPI.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("还是循环置顶?", 623,200, 192, 114)
GUISetState(@SW_SHOW)
While 1
_WinAPI_SetWindowPos($Form1, -1, 0, 0, 0, 0, 3);前面的去掉,只有这句有用
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd _WinAPI_SetWindowPos($hw, -2, 0, 0, 0, 0, 3)
这个有没有用,要看实际场合,环境不同就不同.总体是有用的,必须的.
不用循环,普通窗口能做得到?
直接写屏,或DX也许能.那就不是个普通窗口了
页:
[1]
2