找回密码
 加入
搜索
查看: 5525|回复: 13

[图形处理] AU3能让时间在游戏中显示么?类似Fraps

  [复制链接]
发表于 2010-2-17 17:04:31 | 显示全部楼层 |阅读模式
本帖最后由 KLU3K 于 2010-2-17 22:46 编辑

想让游戏时间在屏幕左上角或者别的地方显示出来(就是OSD),玩游戏就不耽误了。
但是不知道怎么实现。
发表于 2010-2-17 17:21:21 | 显示全部楼层
做个前置的特性窗体显示时间,好像论坛里见过的
 楼主| 发表于 2010-2-17 22:41:20 | 显示全部楼层
好像不行吧,不需要钩子之类的么?好像还有什么覆盖模式下显示。
不知道怎么实现的。
 楼主| 发表于 2010-2-23 17:53:41 | 显示全部楼层
有知道的么
发表于 2010-2-25 15:04:15 | 显示全部楼层
学习中
 楼主| 发表于 2010-2-25 18:34:14 | 显示全部楼层
楼上的,这还没答案呢,怎么学习啊?
 楼主| 发表于 2010-3-6 01:25:55 | 显示全部楼层
自己再顶一下,有思路么?
发表于 2010-3-6 01:41:38 | 显示全部楼层
我写过始终置顶的显示时间脚本…主要是检测系统时间和你设置的时间变量是否一致,不一致的话就修改时间变量值,然后用SplashTextOn显示…
但是对全屏游戏MS支持不够好,尤其是FPS游戏…闪得厉害…有点烦人的感觉…其他游戏未知…
发表于 2010-3-6 01:48:31 | 显示全部楼层
个人主要用来显示开机时间…以及校园网连接时间…
 楼主| 发表于 2010-3-6 12:54:02 | 显示全部楼层
SplashTextOn估计不行,看来au3没这个功能。
发表于 2010-3-6 15:48:10 | 显示全部楼层
不是很清楚,估计不太支持。。。。
发表于 2010-3-6 21:47:36 | 显示全部楼层
写一个小GUI,设置其为游戏窗口的子窗口,就好了
发表于 2010-3-6 22:12:17 | 显示全部楼层
$Game_Handle = Pid2Winhandle(6820);用进程PID取窗口句柄
;~ $Game_Handle = WinGetHandle("游戏窗口名称");用窗口名称取窗口句柄
$Gui = GuiCreate("", 125, 20, 0, 0, 0x08000000+0x80000000, -1, Pid2Winhandle(6820)) 
GUISetBkColor(0xE0FFFF)
$TIme_Lable = GUICtrlCreateLabel(@YEAR & "/" & @MON & "/" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC,5,4)
GUICtrlSetColor(-1, 0x0000FF)
GuiSetState(@SW_SHOWNOACTIVATE,$Gui)

While 1
        Sleep(1000)
        GUICtrlSetData($TIme_Lable,@YEAR & "/" & @MON & "/" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC)
WEnd


Func Pid2Winhandle($PID)
        $PID = ProcessExists($PID)
        $WinList = WinList()
        For $i = 1 To $WinList[0][0]
                If $WinList[$i][0] <> "" And BitAND(WinGetState($WinList[$i][1]), 2) Then
                        $Pid2Winhandle = WinGetProcess($WinList[$i][1])
                        If $Pid2Winhandle = $PID Then Return $WinList[$i][1]
                EndIf
        Next
        Return SetError(0, 0, 0)
EndFunc   ;==>Pid2Winhandle
也许是你想要的

评分

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

查看全部评分

发表于 2010-3-6 23:36:59 | 显示全部楼层
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$hGui = GUICreate("", 100,20, @DesktopWidth-100,0,$WS_POPUP, $WS_EX_LAYERED+$WS_EX_TOPMOST+$WS_EX_TOOLWINDOW)
GUICtrlCreateLabel("",0,0,100,20,-1,$GUI_WS_EX_PARENTDRAG)
GUICtrlSetBkColor(-1, 0x123456)
GUICtrlSetFont(-1,15,1000)
GUICtrlSetColor(-1, 0xFF8000)
_API_SetLayeredWindowAttributes($hGui, 0x123456)
GUISetState()

While 1
        GUICtrlSetData(-1, @HOUR&':'&@MIN&':'&@SEC)
        sleep(1000)
        WinSetOnTop($hGui,'',1)
WEnd

Func _API_SetLayeredWindowAttributes($hwnd, $i_transcolor, $Transparency = 255, $isColorRef = False)
        Local Const $AC_SRC_ALPHA = 1
        Local Const $ULW_ALPHA = 2
        Local Const $LWA_ALPHA = 0x2
        Local Const $LWA_COLORKEY = 0x1
        If Not $isColorRef Then
                $i_transcolor = Hex(String($i_transcolor), 6)
                $i_transcolor = Execute('0x00' & StringMid($i_transcolor, 5, 2) & StringMid($i_transcolor, 3, 2) & StringMid($i_transcolor, 1, 2))
        EndIf
        Local $Ret = DllCall("user32.dll", "int", "SetLayeredWindowAttributes", "hwnd", $hwnd, "long", $i_transcolor, "byte", $Transparency, "long", $LWA_COLORKEY + $LWA_ALPHA)
        Select
                Case @error
                        Return SetError(@error, 0, 0)
                Case $Ret[0] = 0
                        Return SetError(4, 0, 0)
                Case Else
                        Return 1
        EndSelect
EndFunc   ;==>_API_SetLayeredWindowAttributes
不确定是否好用.

评分

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

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-14 21:06 , Processed in 0.093227 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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