查看: 1846|回复: 5

[已经解决] EXE程序启动后,怎么更改默认窗口位置

[复制链接]
梦石
0
星屑
1556
在线时间
626 小时
注册时间
2010-8-5
回帖
317
发表于 2014-7-10 18:50:37 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
打开游戏后,默认是居中的吧。,我想让游戏窗口打开后默认往左移动300-400个坐标。。。请问要怎么做

点评

哈 这你就要修改exe了 这我也不会 @灼眼的夏娜写过其源码 貌似是c++写的 你可以去看看 http://hi.baidu.com/hanomirin/item/631dd888165978d45e0ec1cb  发表于 2014-7-10 21:02
梦石
0
星屑
1044
在线时间
750 小时
注册时间
2013-2-15
回帖
82

开拓者

发表于 2014-7-10 19:19:35 | 显示全部楼层
这是我从DNF范例中挖出来的....
删减了一部分...
  1. # 防止 F12 后再次执行
  2. 位置x = 0
  3. 位置y = 0


  4. if $START_NOCAPTION == nil
  5.   getPrivateProfileString = Win32API.new("kernel32", "GetPrivateProfileString", ['P', 'P', 'P', 'P', 'L', 'P'], 'L')
  6.   findWindow = Win32API.new("user32", "FindWindow", ['P', 'P'], 'L')
  7.   setWindowPos = Win32API.new("user32", "SetWindowPos",['L', 'L', 'I', 'I', 'I', 'I', 'I'], 'L')
  8.   # 分配字符串缓冲区
  9.   title = " " * 128
  10.   # 通过读取 Game.ini 获取窗口标题
  11.   getPrivateProfileString.call("game", "Title", "", title, 128, "./game.ini")
  12.   # 通过窗口类名和标题获取窗口句柄
  13.   hWnd = findWindow.call('RGSS Player', title)

  14.   # 更新窗口框架并居中  
  15.   setWindowPos.call(hWnd, 0, 位置x, 位置y, 640, 480, 0x0020)#0x0020)
  16. end
复制代码

点评

唯一不完美的地方就是一开始还是在中间,要等窗口跳到指定位置去。  发表于 2014-7-10 20:24

评分

参与人数 1星屑 +100 收起 理由
RyanBern + 100 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
1556
在线时间
626 小时
注册时间
2010-8-5
回帖
317
 楼主| 发表于 2014-7-10 21:01:36 | 显示全部楼层
九幽鬼少 发表于 2014-7-10 19:19
这是我从DNF范例中挖出来的....
删减了一部分...

很好,不错。但是就像RyanBern说的,能不能解决这个问题?
回复

使用道具 举报

梦石
0
星屑
1044
在线时间
750 小时
注册时间
2013-2-15
回帖
82

开拓者

发表于 2014-7-10 21:13:53 | 显示全部楼层
jiahui5592986 发表于 2014-7-10 21:01
很好,不错。但是就像RyanBern说的,能不能解决这个问题?

嗯 … 用脚本是不可能的  因为rmxp原理是先打开窗口 再慢慢加载脚本  所以会出现运行时先中间在闪开的情况  只能改exe
回复

使用道具 举报

梦石
0
星屑
1556
在线时间
626 小时
注册时间
2010-8-5
回帖
317
 楼主| 发表于 2014-7-10 21:17:28 | 显示全部楼层
九幽鬼少 发表于 2014-7-10 21:13
嗯 … 用脚本是不可能的  因为rmxp原理是先打开窗口 再慢慢加载脚本  所以会出现运行时先中间在闪开的情 ...

好吧,,,,不过还是谢谢你了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部