- 注册时间
- 2004-5-22
- 最后登录
- 2025-2-12
管理员
爱干啥干啥!
  
- 积分
- 6699
|
发表于 2006-7-19 13:58:28
|
显示全部楼层
我用的さくら 提供的这个API,写了如下代码:
- CP_ACP = 0
- CP_UTF8 = 65001
- # 获取当前窗口句柄
- $FindWindowEX = Win32API.new('user32','FindWindowEx','%w(l,l,p,p)','L')
- # 字符编码转换API
- $m2w = Win32API.new('kernel32', 'MultiByteToWideChar', '%w(i,l,p,i,p,i)', 'i')
- $w2m = Win32API.new('kernel32', 'WideCharToMultiByte', '%w(i,l,p,i,p,i,p,p)', 'i')
- # 改变窗口文字的API
- $SetWindowText = Win32API.new('user32','SetWindowText','%w(l,p)','L')
- # 首先获得窗口名称的正确编码
- game_title="游戏工程名称"
- buffer = "\\0\\0" * game_title.size
- project_name = "\\0" * game_title.size
- $m2w.call(CP_UTF8, 0, game_title, -1, buffer, game_title.size)
- $w2m.call(CP_ACP,0,buffer,-1,project_name,game_title.size,0,0)
- # 获取窗口句柄
- $hWnd = $FindWindowEX.call(0,0,nil,project_name)
- # 改变窗口名称
- $new_name="新名字"
- module Graphics
- def self.update_new
- Graphics.update
- $SetWindowText.call($hWnd,$new_name)
- end
- end
复制代码
貌似alias无法重命名模块方法,比如Graphics.update无法被重命名,所以只好新写了个方法。然后手工替代Graphics.update方法。
但是仍然发现,其实每一帧Graphics.update都会自动更改游戏标题栏的,所以无法实现这个效果,这段代码只能实现原标题和新标题互相闪烁着更新……
另外,不知道楼主为何要此功能?譬如游戏全屏的时候,是无法看到标题栏的呀~~ |
|