查看: 1860|回复: 6

[已经解决] 如何用RGSS运行游戏目录下的Exe文件?

  [复制链接]

神之瞳

梦石
0
星屑
60
在线时间
5 小时
注册时间
2009-7-5
回帖
290
发表于 2009-8-25 19:13:46 | 显示全部楼层 |阅读模式

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

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

×
RT,那个BB崽的那篇教程我看了,可是它是运行WINDOWS目录下的Exe文件,我要求运行游戏目录下的Exe文件……
如有回答,感激不尽……

九月三日

  有时我真不理解,怎么有另一个人能够爱她,可以爱她,殊不知我爱她爱得如此真切,如此忘情,如此情意缱倦,除了她我什么也不了解,什么也不知道,什么也没有呀!
——摘自《少年维特之烦恼》

谨以 纪念一段消逝了的感情
ILY ZXY

NOIp什么的最讨厌了!

啊……讨厌,为什么我的网盘全部坏掉了……
zoomshare恢复了,虚惊一场
可恶的skydrive,我XX你的OO,竟把我的帐号封了!
梦石
1
星屑
12038
在线时间
4536 小时
注册时间
2005-10-22
回帖
7101

开拓者贵宾

发表于 2009-8-25 22:31:17 | 显示全部楼层
丢给你一个我在石器时代里用的函数

#*********************打开一个程序*************************
def sys_startsoft(a,b=2)
   runner = Win32API.new('kernel32','WinExec','pl','l')
   runner.call(a,b)
end
#**********************************************************
参数
a是文件路径
b是显示方式(0~? 自己试吧……)
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-10-16
回帖
408
发表于 2009-8-26 09:01:20 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

神之瞳

梦石
0
星屑
60
在线时间
5 小时
注册时间
2009-7-5
回帖
290
 楼主| 发表于 2009-8-26 17:01:44 | 显示全部楼层
本帖最后由 上帝的眼睛 于 2009-8-26 17:19 编辑

那个,板凳,那样是打开文件,不是打开Exe程序,打开的话是一堆乱码,就像用记事本打开程序一样……
另:那个如何获取游戏的路径呢?


那个,我用那个函数咋出错了呐?
a="E:\vb\sy\xiaoshizhong.exe"
Game_System.sys_startsoft(a,2)
这个是我事件里的设置
脚本我添到Game_System脚本第39行里面了

九月三日

  有时我真不理解,怎么有另一个人能够爱她,可以爱她,殊不知我爱她爱得如此真切,如此忘情,如此情意缱倦,除了她我什么也不了解,什么也不知道,什么也没有呀!
——摘自《少年维特之烦恼》

谨以 纪念一段消逝了的感情
ILY ZXY

NOIp什么的最讨厌了!

啊……讨厌,为什么我的网盘全部坏掉了……
zoomshare恢复了,虚惊一场
可恶的skydrive,我XX你的OO,竟把我的帐号封了!
回复

使用道具 举报

梦石
1
星屑
12038
在线时间
4536 小时
注册时间
2005-10-22
回帖
7101

开拓者贵宾

发表于 2009-8-26 17:06:44 | 显示全部楼层
有这么麻烦吗?

直接 IO.popen("QQ")
把QQ.exe 放在游戏根目录不就行了。.
66rpg学习 发表于 2009-8-26 09:01


在部分实验环境下此方法发生未知的引发RMXP挂掉的情况,具体原因未明,所以就那啥了。。。
回复

使用道具 举报

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
回帖
1912
发表于 2009-8-26 17:33:03 | 显示全部楼层
那个,板凳,那样是打开文件,不是打开Exe程序,打开的话是一堆乱码,就像用记事本打开程序一样……
另:那个如何获取游戏的路径呢?
4
那个,我用那个函数咋出错了呐?
a="E:\vb\sy\xiaoshizhong.exe"
Game_System.s ...
上帝的眼睛 发表于 2009-8-26 17:01

IO.popen 就是用来在子进程中运行一个命令字符串的,这个子进程的标准输入输出会被连接到函数返回的 IO 对象,所以请不要想当然……



你不需要获取游戏路径,只要把你的可执行程序放到游戏目录下,就可以通过相对路径来访问了。非要获取绝对路径的话:
  1. p Dir.getwd
复制代码



函数出错是因为你直接把二楼给出的函数放到 Game_System 的定义中,这样这个函数就成了一个实例方法,所以应该如此调用:
  1. $game_system.sys_startsoft(a,2)
复制代码
或者呢将函数定义为一个类方法(静态方法):
  1. def self.sys_startsoft(a,b=2)
  2.    runner = Win32API.new('kernel32','WinExec','pl','l')
  3.    runner.call(a,b)
  4. end
复制代码
这样才能直接通过 Game_System 类名来调用~
回复

使用道具 举报

梦石
1
星屑
12038
在线时间
4536 小时
注册时间
2005-10-22
回帖
7101

开拓者贵宾

发表于 2009-8-26 17:36:30 | 显示全部楼层
那个,板凳,那样是打开文件,不是打开Exe程序,打开的话是一堆乱码,就像用记事本打开程序一样……
另:那个如何获取游戏的路径呢?
4
那个,我用那个函数咋出错了呐?
a="E:\vb\sy\xiaoshizhong.exe"
Game_System.s ...
上帝的眼睛 发表于 2009-8-26 17:01



直接
a ="E:\vb\sy\xiaoshizhong.exe"
sys_startsoft(a,2)

不用Game_System.
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部