设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1827|回复: 2
打印 上一主题 下一主题

[胡扯] 【API获取窗口句柄】的两种防止出错的方式

[复制链接]

Lv1.梦旅人

梦石
0
星屑
76
在线时间
1379 小时
注册时间
2012-7-5
帖子
1698

开拓者

跳转到指定楼层
1
发表于 2014-1-4 12:06:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 kuerlulu 于 2014-1-4 12:10 编辑

@Main 君对不住了....
出错原因: 开多个窗口名为'RGSS Player'的游戏窗口导致'FindWindowA'的API可能会读取失败【到不是想要的那个窗口。
后来看到夏娜("后来"是指看到相关帖子..)前辈写了个获取窗口句柄的排错方法,我也扔到了原截图存档脚本里(可点此贴:http://rpg.blue/forum.php?mod=viewthread&tid=333816查看)
再后来今天看到外国的某API脚本是这么做的:
  1.     # Get game window title from Game.ini
  2.     ini = Win32API.new('kernel32', 'GetPrivateProfileString','PPPPLP', 'L')
  3.     @title = "\0" * 256
  4.     ini.call('Game', 'Title', '', @title, 256, '.\\Game.ini')
  5.     @title.delete!("\0")
  6.     # Set game window to an instance variable, using the title we found.
  7.     #
  8.     @Main = Win32API.new('user32', 'FindWindowA', 'PP', 'L').call('RGSS Player', @title)
复制代码
# 大意是从ini里读取到游戏标题然后使用'FindWindowA'时传递这个标题参数。
表示一般情况下用后一种更简洁、、
你们就当我是水吧【喂  

点评

如果有多个相同标题的窗口也会失败  发表于 2014-1-5 15:08

  -fk: -azogi:

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1697
在线时间
3038 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

2
发表于 2014-1-4 17:44:06 | 只看该作者
本帖最后由 精灵使者 于 2014-1-4 17:48 编辑

紫苏记得在api获得窗口句柄里面也专门写了个脚本什么的。
http://rpg.blue/thread-133018-1-1.html
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv2.观梦者 (禁止发言)

梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
帖子
1839

开拓者

3
发表于 2014-1-5 23:03:07 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-18 21:51

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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