Project1

标题: 分辨率代码,求解释 [打印本页]

作者: 418280852    时间: 2013-8-21 11:31
标题: 分辨率代码,求解释
宽度 = 800
高度 = 600
get_hWnd = Win32API.new('user32', 'GetActiveWindow',nil,'l')
$hWnd = get_hWnd.call()
get_x_and_y = Win32API.new('user32', 'GetSystemMetrics', 'l','l')
x = get_x_and_y.call(0)
y = get_x_and_y.call(1)
set_window_pos = Win32API.new('user32', 'SetWindowPos', 'lliiiii',nil)
set_window_pos.call($hWnd, 0, (x-宽度)/2,(y-高度)/2, 宽度, 高度,0)
这代码,哪位大神解释一下。




试过只是复制
宽度 = 800
高度 = 600
没效果,求解释



作者: 铃仙·优昙华院·因幡    时间: 2013-8-21 14:38
本帖最后由 protosssonny 于 2013-8-27 10:51 编辑
  1. 宽度 = 800
  2. 高度 = 600

  3. get_hWnd = Win32API.new('user32', 'GetActiveWindow',nil,'l')
  4. $hWnd = get_hWnd.call()
  5. # 以上两句其实是通过API "GetActiveWindow" 获取 RM 窗口的句柄. 这个句柄你可以理解成获取可以随便推倒 RM窗口 的管理员权限.

  6. get_x_and_y = Win32API.new('user32', 'GetSystemMetrics', 'l','l')
  7. x = get_x_and_y.call(0)
  8. y = get_x_and_y.call(1)
  9. # 接着调用 GetSystemMetrics 这个 API 获取玩家当前屏幕分辨率的宽高. x 就是宽度, y 是高度. 比如你的屏幕分辨率是 1366 * 768. 那么这里的 x 就是 1366, y 是 768.

  10. set_window_pos = Win32API.new('user32', 'SetWindowPos', 'lliiiii',nil)
  11. set_window_pos.call($hWnd, 0, (x-宽度)/2,(y-高度)/2, 宽度, 高度,0)
  12. # 最后是利用 RM的窗口句柄(也就是管理员权限) 去修改 RM窗口 的位置以及宽高.
复制代码

作者: satgo1546    时间: 2013-8-21 15:24
  1. 宽度 = 800
  2. 高度 = 600
复制代码
只是用来把“宽度”和“高度”变量赋值而已,跟分辨率无关。所以真心不喜欢变量名是中文啊……很容易误导新手……

作者: 418280852    时间: 2013-8-21 15:36
satgo1546 发表于 2013-8-21 15:24
只是用来把“宽度”和“高度”变量赋值而已,跟分辨率无关。所以真心不喜欢变量名是中文啊……很容易误导新 ...

赋值,那为什么,我在脚本那里只打这2局没效果?
是因为什么rm窗口  管理员权限问题?

作者: 铃仙·优昙华院·因幡    时间: 2013-8-21 15:52
418280852 发表于 2013-8-21 15:36
赋值,那为什么,我在脚本那里只打这2局没效果?
是因为什么rm窗口  管理员权限问题?
...

你只是定义了两个变量而已. 至于这两个值你需要怎么用, 这写都要告诉 RM . 不然一个 800 一个 600 的数值, 也许是窗口尺寸, 但是也能理解成图片的尺寸啊.
作者: 418280852    时间: 2013-8-21 16:14
铃仙·优昙华院·因幡 发表于 2013-8-21 15:52
你只是定义了两个变量而已. 至于这两个值你需要怎么用, 这写都要告诉 RM . 不然一个 800 一个 600 的数值 ...

懂。谢谢




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1