怎么样让才让AU3永远 在WINDOWS窗口的最前方呢
怎么样让才让AU3永远 在WINDOWS窗口的最前方呢我想了个。。脚本HotKeySet('{F2}设置一个热键为F2时
可是当我点开其它窗口的时候。。其它窗口就成为了WINDOWS的最前面的窗口了
当我在按F2的时候脚本已经没有作用了。。我点鼠标右键下面提示脚本已经暂停了
怎么样写代码才可以让AU3脚本永远在窗口的最前面呢,,不管点什么窗口。。总让AU3跑到窗口的最前面。。不管我用鼠标切换到任何窗口的时候。。然后可以按F2键。。。来热行脚本 WinSetOnTop
--------------------------------------------------------------------------------
设置指定窗口的"总是在顶层"属性.
WinSetOnTop ( "窗口标题", "窗口文本", 标志 )
参数
窗口标题 目标窗口标题.参考标题特殊定义.
窗口文本 目标窗口文本.
标志 用以决定目标窗口是否具有"顶层窗口"属性:
1=设置为顶层窗口,0 = 取消顶层窗口属性
返回值
成功: 返回 1.
失败: 返回 0,窗口不存在.
注意/说明
某些第三方程序带有"总是在顶层"的上下文菜单,AutoIt 更改其顶层窗口属性时其菜单项将不被更新. 本帖最后由 yingf20 于 2010-9-13 11:11 编辑
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("TrayMenuMode", 1)
Opt("GUICloseOnESC", 0)
Opt("TrayOnEventMode", 1)
HotKeySet('{F2}', 'f2')
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("测试", 200, 100, 200, 200, $WS_POPUP, $WS_EX_TOOLWINDOW)
$Button = GUICtrlCreateButton("关闭", 162, 128, 40, 20)
_SetWindowPos($Form1, 200, 200) ;这里设置窗口始终在最前端
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE, $Button
GUISetState(@SW_HIDE)
EndSwitch
WEnd
Func f2()
If WinGetState($Form1) Then
GUISetState(@SW_HIDE)
Else
GUISetState(@SW_SHOW)
EndIf
EndFunc ;==>SpecialEvent
Func _SetWindowPos($hWnd, $x, $y) ;使用API将窗体保持最前
Local $cX, $cY
Dim $hWndInsertAfter = -1
Dim $wFlags = 1
DllCall("user32.dll", "long", "SetWindowPos", "long", $hWnd, "long", $hWndInsertAfter, "long", $x, _
"long", $y, "long", $cX, "long", $cY, "long", $wFlags)
EndFunc ;==>_SetWindowPos
试试这些代码看怎样。看是不是你想要的。 楼主还在做你的自动填身份证的玩意啊? 恩。。呵呵谢谢大家了。,。不过 不会AU3 访问SQL。。呀 本帖最后由 liufenglg 于 2010-9-13 17:13 编辑
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("TrayMenuMode", 1)
Opt("GUICloseOnESC", 0)
Opt("TrayOnEventMode", 1)
HotKeySet('{F2}', 'f2')
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("测试", 200, 100, 200, 200, $WS_POPUP, $WS_EX_TOOLWINDOW)
$Button = GUICtrlCreateButton("关闭", 162, 128, 40, 20)
_SetWindowPos($Form1, 200, 200) ;这里设置窗口始终在最前端
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE, $Button
GUISetState(@SW_HIDE)
EndSwitch
WEnd
Func f2()
If WinGetState($Form1) Then
GUISetState(@SW_HIDE)
Else
GUISetState(@SW_SHOW)
EndIf
EndFunc ;==>SpecialEvent
Func _SetWindowPos($hWnd, $x, $y) ;使用API将窗体保持最前
Local $cX, $cY
Dim $hWndInsertAfter = -1
Dim $wFlags = 1
DllCall("user32.dll", "long", "SetWindowPos", "long", $hWnd, "long", $hWndInsertAfter, "long", $x, _
"long", $y, "long", $cX, "long", $cY, "long", $wFlags)
EndFunc ;==>_SetWindowPos
按F2什么也没了 回复 6# liufenglg
可能我设置有些地方错了,希望高手经过把它修改正吧?应该是循环问题 学习。。。。。。。。。。。。。 WinSetOnTop
页:
[1]