| 赞 | 3 |
| VIP | |
| 好人卡 | |
| 积分 | 2 |
| 经验 | |
| 最后登录 | 2024-6-13 |
| 在线时间 | 332 小时 |
- 梦石
- 0
- 星屑
- 175
- 在线时间
- 332 小时
- 注册时间
- 2013-7-6
- 回帖
- 316
|
发表于 2014-7-14 09:18:46
|
显示全部楼层
经测试没办法变回原来的分辨率,对Win32API不太熟,看不太懂脚本,只能改变一次分辨率。二次改变没有效果。这是改完的脚本。。。游戏中调用alex = Fenbianlv.new(800,600)就能改变分辨率,不过只能改一次。- class Fenbianlv
- def initialize(a,b)
-
- 宽度=a
- 高度=b
-
- 游戏ini名=".\\Game.ini"
-
- val = "\0"*256
- gps = Win32API.new('kernel32', 'GetPrivateProfileString','pppplp', 'l')
- gps.call("Game", "Title", "", val, 256, 游戏ini名)
- val.delete!("\0")
- title = val
- fw = Win32API.new('user32', 'FindWindow', 'pp', 'i')
- hWnd = fw.call("RGSS Player", title)
- swp = Win32API.new('user32', 'SetWindowPos', 'lliiiii', 'i')
- pointwds = [0,0,0,0].pack('llll')
- pointcet = [0, 0].pack('ll')
- wdsrect = Win32API.new('user32.dll', 'GetWindowRect', 'lp', 'l')
- client_screen = Win32API.new("user32", "ClientToScreen", 'ip', 'i')
- wdsrect.call(hWnd,pointwds)
- client_screen.call(hWnd, pointcet)
- wds = pointwds.unpack('llll')
- cet = pointcet.unpack('ll')
- p wds
- p cet
- addw = wds[2] - wds[0] - 640
- addh = wds[3] - wds[1] - 480
- x = wds[0] - (宽度 - 640) / 2
- y = wds[1] - (高度 - 480) / 2
- swp.call(hWnd, 0, x, y, 宽度 + addw, 高度 + addh, 0x20)
-
- end
- end
复制代码 |
|