lixiaolong
发表于 2012-2-29 15:37:11
回复 1# sanmoking
刚测试去掉GUISetStyle() 也可以.
sanmoking
发表于 2012-2-29 15:47:26
回复 14# 痒痒
我换成最新的3.3.6.1,运行还是没有窗口,应该是$WS_POPUP, $WS_EX_LAYERED + $WS_EX_MDICHILD不能共存吧?
sanmoking
发表于 2012-2-29 15:55:00
回复 15# lixiaolong
你这还是置顶啊
fuldho
发表于 2012-2-29 16:51:59
好像大家都没明白你的意思,截一个式样看看。
lixiaolong
发表于 2012-2-29 17:54:26
本帖最后由 lixiaolong 于 2012-2-29 18:33 编辑
回复 18# sanmoking
这个怎么样?XP不行Win7成功.
Global Const $WM_MOVE = 0x0003
Global Const $WM_LBUTTONDOWN = 0x0201
Global Const $GUI_RUNDEFMSG = 'GUI_RUNDEFMSG'
Global $TrayWnd = WinGetHandle('')
$Width = 500
$Hight = 300
$WinHight = @DesktopHeight - 38 - $Hight
$hGui = GUICreate('窗口非置顶显示但永久覆盖桌面任务栏 by lixiaolong', $Width, $Hight, -1, -1)
GUISetState()
GUIRegisterMsg($WM_MOVE, "WM_MOVE")
While 1
$msg = GUIGetMsg()
If Not WinActive($hGui) Then
WinSetOnTop($hGui, '', 0)
EndIf
Switch $msg
Case -3
Exit
Case -7
WinSetOnTop($TrayWnd, '', 0)
WinSetOnTop($hGui, '', 1)
WinSetOnTop($hGui, '', 0)
EndSwitch
WEnd
Func WM_MOVE($hWnd, $iMsg, $iwParam, $ilParam)
#forceref $hWnd, $iMsg, $iwParam, $ilParam
Local $nY = BitShift($ilParam, 16)
If $nY > $WinHight Then WinSetOnTop($hGui, '', 1)
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_MOVE
zldfsz
发表于 2012-2-29 18:18:02
回复 4# afan
这是win7下的测试效果,好像是在任务栏下的
afan
发表于 2012-2-29 18:21:56
回复afan
这是win7下的测试效果,好像是在任务栏下的
zldfsz 发表于 2012-2-29 18:18 http://www.autoitx.com/images/common/back.gif
那肯定是在下面了,没 Win7,没办法调试…
zldfsz
发表于 2012-2-29 18:34:58
回复 22# afan
将你的代码做了一点改动:将CLASS:Shell_TrayWnd改成CLASS:Button,在win7下也实现了之前xp下测试的效果,但现在用的win7,不知道在xp下是否有用
#include <WindowsConstants.au3>
HotKeySet('^q', '_Exit')
$hGui = GUICreate('任务栏 by afan', @DesktopWidth + 3, 50, 0, 2, $WS_POPUP, $WS_EX_LAYERED + $WS_EX_MDICHILD, WinGetHandle(''))
GUICtrlCreateLabel('Ctrl - Q 退出', 100, 10, 100, 12)
GUISetBkColor(0x5896DF, $hGui)
WinSetTrans($hGui, '', 255)
GUISetState()
Do
Until GUIGetMsg() = -3
Func _Exit()
Exit
EndFunc
afan
发表于 2012-2-29 18:36:30
回复 23# zldfsz
Xp 下不成,呵呵
zldfsz
发表于 2012-2-29 18:40:01
本帖最后由 zldfsz 于 2012-2-29 18:47 编辑
回复 24# afan
那就先判断是什么操作系统,再执行代码:
#include <WindowsConstants.au3>
If @OSVersion="WIN_7" Then
$Handle=WinGetHandle('')
Else
$Handle=WinGetHandle('')
EndIf
HotKeySet('^q', '_Exit')
$hGui = GUICreate('任务栏 by afan', @DesktopWidth + 3, 50, 0, 2, $WS_POPUP, $WS_EX_LAYERED + $WS_EX_MDICHILD,$Handle )
GUICtrlCreateLabel('Ctrl - Q 退出', 100, 10, 100, 12)
GUISetBkColor(0x5896DF, $hGui)
WinSetTrans($hGui, '', 255)
GUISetState()
Do
Until GUIGetMsg() = -3
Func _Exit()
Exit
EndFunc
android2
发表于 2012-3-2 20:30:01
好东西啊!
android2
发表于 2012-3-2 20:30:03
好东西啊!好东西啊!
UID
发表于 2012-3-3 23:37:51
AFAN现在很利害了啊
syhw2222
发表于 2012-3-4 15:22:45
高手就是高手,解决问题就是快!
yhxhappy
发表于 2012-3-5 20:09:13
我觉得很简单啊#include <WindowsConstants.au3>
$Pos = WinGetPos("", "") ;取任务栏高度
$Gui = GUICreate("", @DesktopWidth, $Pos, 0, @DesktopHeight-$Pos, $WS_POPUP, $WS_EX_TOPMOST)
$Label = GUICtrlCreateLabel("单击退出", 1000, 10, 50, 15)
GUISetState()
Do
Until GUIGetMsg() = $Label