Project1
标题:
如何在脚本里调用外部的批处理文件(.cmd)
[打印本页]
作者:
wubugui
时间:
2010-7-17 10:44
标题:
如何在脚本里调用外部的批处理文件(.cmd)
如何在脚本里调用外部的批处理文件(.cmd)
或者怎样调用外部文件
例如
游戏打开的同时需要打开外部的另一个文件(否则游戏无法进行)
在关闭游戏时需要同时关闭刚才打开的文件
我想用批处理来实现
思想是
用批处理打开先最小化打开游戏运行所必需的文件
然后让批处理打开游戏
在关闭时让脚本调用外部批处理
批处理同时关掉那个文件和游戏。
作者:
zhixin1997
时间:
2010-7-17 11:35
我也求解~~
作者:
小宝宝
时间:
2010-7-17 11:57
沙发被抢了
作者:
紫苏
时间:
2010-7-17 12:09
ShellExecute = Win32API.new("shell32", "ShellExecute",'lppppl', 'l')
ShellExecute.call(0,"","test.cmd","","",1)
作者:
wubugui
时间:
2010-7-17 13:18
回复
紫苏
的帖子
你仔细讲讲,都有些什么参数?
作者:
darkdrium
时间:
2010-7-17 13:23
回复
wubugui
的帖子
不推荐楼主这么做
第一:一个程序自动调用另一个程序是病毒的一种特征,难保一些杀软会报警
第二:用户体验非常差,试想,如果你打开仙剑奇侠传,边上出来个cmd的窗口(OOXXSOSJ)
作者:
DeathKing
时间:
2010-7-17 14:02
同diyrpg那里的回答: Kernel模块的system方法,system方法是执行系统命令,参数是命令构成的字符串。
作者:
紫苏
时间:
2010-7-17 15:07
回复
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
作者:
Allguard
时间:
2010-7-21 16:39
提示:
作者被禁止或删除 内容自动屏蔽
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1