找回密码
 加入
搜索
查看: 5252|回复: 8

[系统综合] 怎么样让才让AU3永远 在WINDOWS窗口的最前方呢

  [复制链接]
发表于 2010-9-13 01:39:10 | 显示全部楼层 |阅读模式
怎么样让才让AU3永远 在WINDOWS窗口的最前方呢

我想了个。。脚本HotKeySet('{F2}设置一个热键为F2时

可是当我点开其它窗口的时候。。其它窗口就成为了WINDOWS的最前面的窗口了

当我在按F2的时候脚本已经没有作用了。。我点鼠标右键下面提示脚本已经暂停了


怎么样写代码才可以让AU3脚本永远在窗口的最前面呢,,不管点什么窗口。。总让AU3跑到窗口的最前面。。不管我用鼠标切换到任何窗口的时候。。然后可以按F2键。。。来热行脚本

评分

参与人数 1金钱 -10 收起 理由
afan -10 解决了未加注已解决。

查看全部评分

发表于 2010-9-13 07:29:45 | 显示全部楼层
WinSetOnTop
--------------------------------------------------------------------------------

设置指定窗口的"总是在顶层"属性.


WinSetOnTop ( "窗口标题", "窗口文本", 标志 )




参数

窗口标题 目标窗口标题.参考标题特殊定义.
窗口文本 目标窗口文本.
标志 用以决定目标窗口是否具有"顶层窗口"属性:
1=设置为顶层窗口,0 = 取消顶层窗口属性  



返回值

成功: 返回 1.
失败: 返回 0,窗口不存在.  



注意/说明

某些第三方程序带有"总是在顶层"的上下文菜单,AutoIt 更改其顶层窗口属性时其菜单项将不被更新.
发表于 2010-9-13 10:55:09 | 显示全部楼层
本帖最后由 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
试试这些代码看怎样。看是不是你想要的。

评分

参与人数 1金钱 +20 贡献 +1 收起 理由
afan + 20 + 1

查看全部评分

发表于 2010-9-13 11:13:19 | 显示全部楼层
楼主还在做你的自动填身份证的玩意啊?
 楼主| 发表于 2010-9-13 14:02:44 | 显示全部楼层
恩。。呵呵谢谢大家了。,。不过 不会AU3 访问SQL。。呀
发表于 2010-9-13 17:05:17 | 显示全部楼层
本帖最后由 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什么也没了
发表于 2010-9-13 22:43:17 | 显示全部楼层
回复 6# liufenglg


    可能我设置有些地方错了,希望高手经过把它修改正吧?应该是循环问题
发表于 2010-9-25 20:19:02 | 显示全部楼层
学习。。。。。。。。。。。。。
发表于 2010-9-25 20:21:22 | 显示全部楼层
WinSetOnTop
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-6-2 14:26 , Processed in 0.088563 second(s), 29 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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