menfan1
发表于 2011-6-1 14:46:29
学会搜索嘛这个早就有了啊
dalanmao
发表于 2011-6-12 09:55:17
好,又学会一招
lxz
发表于 2011-6-12 10:59:22
代码收下了,学习学习
Cygerist
发表于 2011-6-13 00:04:40
可以做为鼠标和窗口操做的例子。
auhj887
发表于 2011-6-13 07:55:42
{:face (411):}
minghui
发表于 2011-6-16 16:07:43
留个记号,以后慢慢消化
auhj887
发表于 2011-6-21 20:37:58
{:face (301):}
502762378
发表于 2011-6-24 19:07:36
这东西,看着看着外边就下雨了
menfan1
发表于 2011-7-2 15:51:08
搜索一下一大把
曼菲士
发表于 2011-7-2 17:15:07
很好的代码,谢谢分享。
forestchi
发表于 2011-7-11 20:56:06
这个好像有点问题,窗口有时会突然最大化。。。。
happytc
发表于 2011-7-12 02:03:44
本帖最后由 happytc 于 2011-7-12 03:33 编辑
看到居然这么多人对这个感兴趣,贴一个我以前写的这个功能的函数:
Func HideCaptureBar($hwdGuiBar, $Duration = 500)
Local $MousePos, $WinPos, $AW_SHOW = 0, $Flag = 0
If Not IsHWnd($hwdGuiBar) Then Return
$MousePos = MouseGetPos()
$WinPos = WinGetPos($hwdGuiBar)
If Not IsArray($WinPos) Or Not IsArray($MousePos) Then Return
If $MousePos <= 1 And Not BitAND(WinGetState($hwdGuiBar), 2) Then
If $WinPos < 0 Then
$WinPos = 0
WinMove($hwdGuiBar, "", $WinPos, $WinPos)
EndIf
_WinAPI_AnimateWindow($hwdGuiBar, $AW_SLIDE + $AW_SHOW + $AW_VER_POSITIVE, $Duration)
$Flag = 1
ElseIf $MousePos >= @DesktopHeight - 1 And Not BitAND(WinGetState($hwdGuiBar), 2) Then
If $WinPos > @DesktopHeight - $WinPos Then
$WinPos = @DesktopHeight - $WinPos
WinMove($hwdGuiBar, "", $WinPos, $WinPos)
EndIf
_WinAPI_AnimateWindow($hwdGuiBar, $AW_SLIDE + $AW_SHOW + $AW_VER_NEGATIVE, $Duration)
$Flag = 1
ElseIf $MousePos >= @DesktopWidth - 1 And Not BitAND(WinGetState($hwdGuiBar), 2) Then
If $WinPos > @DesktopWidth - $WinPos Then
$WinPos = @DesktopWidth - $WinPos
WinMove($hwdGuiBar, "", $WinPos, $WinPos)
EndIf
_WinAPI_AnimateWindow($hwdGuiBar, $AW_SLIDE + $AW_SHOW + $AW_HOR_NEGATIVE, $Duration)
$Flag = 1
ElseIf $MousePos <= 1 And Not BitAND(WinGetState($hwdGuiBar), 2) Then
If $WinPos < 0 Then
$WinPos = 0
WinMove($hwdGuiBar, "", $WinPos, $WinPos)
EndIf
_WinAPI_AnimateWindow($hwdGuiBar, $AW_SLIDE + $AW_SHOW + $AW_HOR_POSITIVE, $Duration)
$Flag = 1
EndIf
If $Flag Then Return
If $WinPos < 0 And BitAND(WinGetState($hwdGuiBar), 2) Then
_WinAPI_AnimateWindow($hwdGuiBar, $AW_SLIDE + $AW_HIDE + $AW_VER_NEGATIVE, $Duration)
ElseIf $WinPos + $WinPos > @DesktopHeight And BitAND(WinGetState($hwdGuiBar), 2) Then
_WinAPI_AnimateWindow($hwdGuiBar, $AW_SLIDE + $AW_HIDE + $AW_VER_POSITIVE, $Duration)
ElseIf $WinPos + $WinPos > @DesktopWidth And BitAND(WinGetState($hwdGuiBar), 2)Then
_WinAPI_AnimateWindow($hwdGuiBar, $AW_SLIDE + $AW_HIDE + $AW_HOR_POSITIVE, $Duration)
ElseIf $WinPos < 0 And BitAND(WinGetState($hwdGuiBar), 2)Then
_WinAPI_AnimateWindow($hwdGuiBar, $AW_SLIDE + $AW_HIDE + $AW_HOR_NEGATIVE, $Duration)
EndIf
EndFunc
forestchi
发表于 2011-7-12 09:32:44
楼上的大侠,用不了呀,用的是最新WinAPIEx_3.3....
happytc
发表于 2011-7-12 09:50:34
回复 28# forestchi
这个问问题的方式
就一信息都没有,啥叫“用不了呀”
你只少得给出错误信息吧,不然,我怎么知道你用不了呢?
happytc
发表于 2011-7-12 10:07:25
回复 28# forestchi
自己定义下_WinAPI_AnimateWindow函数就可以了
Func _WinAPI_AnimateWindow($hWnd, $iFlags, $iDuration = 500)
Local $ret = DllCall('user32.dll', 'int', 'AnimateWindow', 'hwnd', $hWnd, 'dword', $iDuration, 'dword', $iFlags)
If (@error) Or (Not $ret) Then
Return SetError(1, 0, 0)
EndIf
Return 1
EndFunc
常量也自己定义,在:http://msdn.microsoft.com/en-us/library/ms632669(v=vs.85).aspx
很可能你用的不是跟WinAPIEx配套的别的函数,特别常量的定义
所以最好不要单独更某个函数,还是用官方统一更新的函数包吧