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

Project1

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

[已经解决] 如何在脚本里调用外部的批处理文件(.cmd)

[复制链接]

Lv1.梦旅人

梦石
0
星屑
236
在线时间
74 小时
注册时间
2009-7-20
帖子
186
跳转到指定楼层
1
发表于 2010-7-17 10:44:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如何在脚本里调用外部的批处理文件(.cmd)
或者怎样调用外部文件
例如
游戏打开的同时需要打开外部的另一个文件(否则游戏无法进行)
在关闭游戏时需要同时关闭刚才打开的文件


我想用批处理来实现
思想是
用批处理打开先最小化打开游戏运行所必需的文件
然后让批处理打开游戏
在关闭时让脚本调用外部批处理
批处理同时关掉那个文件和游戏。
好吧……
恭喜发财!

Lv1.梦旅人

反伸手党斗士

梦石
0
星屑
91
在线时间
1128 小时
注册时间
2009-9-10
帖子
2513

贵宾

2
发表于 2010-7-17 11:35:05 | 只看该作者
我也求解~~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
14 小时
注册时间
2010-7-17
帖子
98
3
发表于 2010-7-17 11:57:09 | 只看该作者
沙发被抢了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
4
发表于 2010-7-17 12:09:48 | 只看该作者
ShellExecute = Win32API.new("shell32", "ShellExecute",'lppppl', 'l')
ShellExecute.call(0,"","test.cmd","","",1)

评分

参与人数 1星屑 +200 收起 理由
IamI + 200 恭喜两边骗分成功 = =||

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
236
在线时间
74 小时
注册时间
2009-7-20
帖子
186
5
 楼主| 发表于 2010-7-17 13:18:37 | 只看该作者
回复 紫苏 的帖子


    你仔细讲讲,都有些什么参数?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
1 小时
注册时间
2009-9-19
帖子
137
6
发表于 2010-7-17 13:23:07 | 只看该作者
回复 wubugui 的帖子
不推荐楼主这么做

第一:一个程序自动调用另一个程序是病毒的一种特征,难保一些杀软会报警
第二:用户体验非常差,试想,如果你打开仙剑奇侠传,边上出来个cmd的窗口(OOXXSOSJ)


   
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1175
在线时间
1564 小时
注册时间
2008-7-30
帖子
4418

贵宾

7
发表于 2010-7-17 14:02:45 | 只看该作者
同diyrpg那里的回答: Kernel模块的system方法,system方法是执行系统命令,参数是命令构成的字符串。

点评

RGSS的10s ?考,咱用Ruby测试的。  发表于 2010-7-17 14:10
system方法会等待完成的……10s威武,上望紫苏  发表于 2010-7-17 14:07

评分

参与人数 1星屑 +200 收起 理由
IamI + 200 摸。

查看全部评分


See FScript Here:https://github.com/DeathKing/fscript
潜心编写URG3中。
所有对URG3的疑问和勘误或者建议,请移步至发布页面。
欢迎萌妹纸催更
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
8
发表于 2010-7-17 15:07:01 | 只看该作者
回复 wubugui 的帖子

什么参数,ShellExecute 的参数?按左右顺序依次是拥有者窗口句柄、执行动作(一个动词字符串,如果传递 NULL 则认为是 open)、文件路径(这里是一个可执行文件,执行前一个参数指定的动作)、参数(如果前一个参数指定的可执行文件,则这里是传递给该程序的参数)、目录(可执行程序所在目录,如果是 NULL 使用当前工作目录)、显示标志(决定如何显示该程序,这里 1 表示显示控制台窗口)
具体可参阅:http://msdn.microsoft.com/en-us/library/bb762153(VS.85).aspx

其实有关执行外部程序的有以下几途径:

ShellExecute,Windows API 函数,对某个文件进行某种操作,调用后直接返回不等待,可选择是否显示窗口;
system,Kernel 中的方法,在 Shell 中(支持子 Shell 机制的系统上则是在子 Shell 中)执行 Shell 命令,等待,有窗口则显示窗口;
exec,Kernel 中的方法,执行 Shell 命令并使用创建的进程强制替换当前进程;
`  (<-- 反引号),Kernel 中的方法,执行 Shell 命令并返回其标准输出,等待,有窗口则显示窗口;
%x{命令},Ruby 的内建分隔输入,用来表示各种字面值,x 是用于 Shell 命令,大括号可以使其它任意可匹配的符号,执行效果同上面的 ` 反引号;
CreateProcess 配合可选的 WaitForSingleObject,Windows API 函数,创建进程,可选择是否等待结束,可选择是否显示窗口(自由度最高的途径),这里有一个隐藏调用外部程序的方法:http://szsu.spaces.live.com/blog/cns!D57D0E50BE1820CF!175.entry
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
2 小时
注册时间
2010-7-21
帖子
139
9
发表于 2010-7-21 16:39:22 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 20:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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