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

Project1

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

rm实现输入信息筐

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
20 小时
注册时间
2005-10-24
帖子
1571
跳转到指定楼层
1
发表于 2007-7-7 21:49:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
   如果rm有输入信息筐该多好!如果rm有控件改多好!可惜,自己学艺不精,连分析别人写的脚本都很困难,就更别说创新了。
  “山穷水尽疑无路,柳暗花明又一村”在这苦劳之际,api出现了!说简单点, api的她可以连接任何在window上的任何程序.rm没有输入筐,但其他语言有啊,比如vb.
   
我要实现的功能是:用输入信息筐来写主角的名字

1,用vb做个输入筐
  这个很基础了,注意窗体的大小和颜色,以及把form的字样修改成姓名,设置一个确定按钮.总之就是要把
vb的那个窗体,尽量做得合理,比如禁止移动,禁止放大缩小等.

2,写命令按钮的程序
  Open "c:\aaa.txt" For Output As #1
  Print #1, text1.text            
  Close #1
  unload me
你不是输入了名字吗?以上的程序是将名字保存在记事本中(路径设置在游戏目录下)

3,用ruby连接这个程序
require 'Win32API'
sizz = Win32API.new('shell32.dll','ShellExecuteA',%w(p p p p p i),'i')
sizz.call(0, 'open', 'D:\程序.exe',0, 0, 1)
以上是让ruby调用这个vb程序

于是,一个输入名字的筐子就出来了,输入名字,确定,信息保存到记事本

然后用ruby读取
   f = File.open("aaa.txt")
   s = f.read
于是ruby中的变量s,就读取了vb中的变量text.text.最后将这个s变量,赋予给角色的姓名.xxx.name这个变量.

Lv1.梦旅人

梦石
0
星屑
55
在线时间
20 小时
注册时间
2005-10-24
帖子
1571
2
 楼主| 发表于 2007-7-7 21:49:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
   如果rm有输入信息筐该多好!如果rm有控件改多好!可惜,自己学艺不精,连分析别人写的脚本都很困难,就更别说创新了。
  “山穷水尽疑无路,柳暗花明又一村”在这苦劳之际,api出现了!说简单点, api的她可以连接任何在window上的任何程序.rm没有输入筐,但其他语言有啊,比如vb.
   
我要实现的功能是:用输入信息筐来写主角的名字

1,用vb做个输入筐
  这个很基础了,注意窗体的大小和颜色,以及把form的字样修改成姓名,设置一个确定按钮.总之就是要把
vb的那个窗体,尽量做得合理,比如禁止移动,禁止放大缩小等.

2,写命令按钮的程序
  Open "c:\aaa.txt" For Output As #1
  Print #1, text1.text            
  Close #1
  unload me
你不是输入了名字吗?以上的程序是将名字保存在记事本中(路径设置在游戏目录下)

3,用ruby连接这个程序
require 'Win32API'
sizz = Win32API.new('shell32.dll','ShellExecuteA',%w(p p p p p i),'i')
sizz.call(0, 'open', 'D:\程序.exe',0, 0, 1)
以上是让ruby调用这个vb程序

于是,一个输入名字的筐子就出来了,输入名字,确定,信息保存到记事本

然后用ruby读取
   f = File.open("aaa.txt")
   s = f.read
于是ruby中的变量s,就读取了vb中的变量text.text.最后将这个s变量,赋予给角色的姓名.xxx.name这个变量.

Lv2.观梦者

梦石
0
星屑
275
在线时间
1373 小时
注册时间
2005-10-16
帖子
5113

贵宾

3
发表于 2007-7-7 22:19:24 | 只看该作者
这个思路确实是比较独特。。。。{/dy}变相的支持输入法了……
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
1
星屑
916
在线时间
101 小时
注册时间
2006-3-27
帖子
1081
4
发表于 2007-7-7 22:43:49 | 只看该作者
算了,自我屏蔽,我觉得我在犯傻
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
20 小时
注册时间
2005-10-24
帖子
1571
5
 楼主| 发表于 2007-7-8 02:17:50 | 只看该作者
   问题就在于,不能直接将vb中的变量传给ruby,必须分两步:首先要保存记事本,然后用ruby调用,虽然可以用过度性的语言来圆滑这种不合理的地方,但还是很别扭.
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
275
在线时间
1373 小时
注册时间
2005-10-16
帖子
5113

贵宾

6
发表于 2007-7-8 03:36:02 | 只看该作者
以下引用sizz123于2007-7-7 18:17:50的发言:

  问题就在于,不能直接将vb中的变量传给ruby,必须分两步:首先要保存记事本,然后用ruby调用,虽然可以用过度性的语言来圆滑这种不合理的地方,但还是很别扭.

可以再研究研究,没准儿有这个方法呢{/hx}
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
20 小时
注册时间
2005-10-24
帖子
1571
7
 楼主| 发表于 2007-7-8 19:29:05 | 只看该作者
rm--记事本---vb,可以将rm的句柄传递给vb.虽然还是和"vb--记事本---rm"一样分两步
(首先将信息保持txt,然后用vb调用),但是vb调用的时候,可以很隐蔽,可以在按下确定的时候调用这个句柄函数.
   用v记录rm的句柄,首先是为了vb将游戏窗口激活,然后看能不能对这个rm窗体传输变量.
  
回复 支持 反对

使用道具 举报

Lv1.梦旅人

Dancer-

梦石
0
星屑
105
在线时间
78 小时
注册时间
2006-5-15
帖子
3306
8
发表于 2007-7-9 05:21:40 | 只看该作者
发布完毕,
http://rpg.blue/web/htm/news770.htm
VIP 2
            by 叶舞枫
小真·爱舞代发。
一个机缘巧合后,被改变了人生的第八年。
养着两只猫,可是我对猫过敏。
为了那终将到来的一天。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

Dancer-

梦石
0
星屑
55
在线时间
76 小时
注册时间
2006-11-9
帖子
3551

开拓者贵宾

9
发表于 2007-7-9 06:03:02 | 只看该作者
自蔽..
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
20 小时
注册时间
2005-10-24
帖子
1571
10
 楼主| 发表于 2007-7-9 19:07:38 | 只看该作者
现在要解决的问题是:"当vb程序按下确定后,rm能接受vb的变量."

一,我们可以通过GetActiveWindow来获得rm的窗体句柄
require 'Win32API'
rm_hwnd = Win32API.new('user32.dll','GetActiveWindow"',nil,'l')
rm_hwnd.call
那么这个rm_hwnd就是窗体句柄,然后把数据传给记事本
f = open("rm句柄.txt","w")
f.write("f = open("rm句柄.txt","w")
f.close
调用vb程序,执行变量输入后,保存记事本----顶楼的方法
然后当vb按下确定后,从"rm句柄.txt"中获得rm句柄:这样做的目的是在退出vb程序后将rm窗口激活(有时候很容易弹出个网页打扰)
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 15:40

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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