Project1

标题: 如何用RGSS运行游戏目录下的Exe文件? [打印本页]

作者: 上帝的眼睛    时间: 2009-8-25 19:13
标题: 如何用RGSS运行游戏目录下的Exe文件?
RT,那个BB崽的那篇教程我看了,可是它是运行WINDOWS目录下的Exe文件,我要求运行游戏目录下的Exe文件……
如有回答,感激不尽……
作者: orochi2k    时间: 2009-8-25 22:31
丢给你一个我在石器时代里用的函数

#*********************打开一个程序*************************
def sys_startsoft(a,b=2)
   runner = Win32API.new('kernel32','WinExec','pl','l')
   runner.call(a,b)
end
#**********************************************************
参数
a是文件路径
b是显示方式(0~? 自己试吧……)
作者: 66rpg学习    时间: 2009-8-26 09:01
提示: 作者被禁止或删除 内容自动屏蔽
作者: 上帝的眼睛    时间: 2009-8-26 17:01
本帖最后由 上帝的眼睛 于 2009-8-26 17:19 编辑

那个,板凳,那样是打开文件,不是打开Exe程序,打开的话是一堆乱码,就像用记事本打开程序一样……
另:那个如何获取游戏的路径呢?
[line]4[/line]
那个,我用那个函数咋出错了呐?
a="E:\vb\sy\xiaoshizhong.exe"
Game_System.sys_startsoft(a,2)
这个是我事件里的设置
脚本我添到Game_System脚本第39行里面了
作者: orochi2k    时间: 2009-8-26 17:06
有这么麻烦吗?

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


在部分实验环境下此方法发生未知的引发RMXP挂掉的情况,具体原因未明,所以就那啥了。。。
作者: 紫苏    时间: 2009-8-26 17:33
那个,板凳,那样是打开文件,不是打开Exe程序,打开的话是一堆乱码,就像用记事本打开程序一样……
另:那个如何获取游戏的路径呢?
4
那个,我用那个函数咋出错了呐?
a="E:\vb\sy\xiaoshizhong.exe"
Game_System.s ...
上帝的眼睛 发表于 2009-8-26 17:01

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

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

函数出错是因为你直接把二楼给出的函数放到 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 类名来调用~
作者: orochi2k    时间: 2009-8-26 17:36
那个,板凳,那样是打开文件,不是打开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.




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