AS3关闭EXE的方法?
我们知道AS3可以打开其他EXE应用程序,但是不知道有没有方法可以把打开的EXE关闭掉?本帖最后由 xxdmx712 于 2019-4-23 10:18 编辑
有个swc,“AirUtils.swc”,安排的明明白白;
导swc不用讲了,自己搞;
用法很简单:
import com.plter.air.windows.utils.NativeCommand;
import com.plter.air.windows.utils.ShowCmdWindow;
killJingCheng("WinFormPPTServer");
private function killJingCheng(name:String):void
{
var args:Vector.<String>=new Vector.<String>;
var str:String = "taskkill /im "+ name+".exe" +" /f";
args.push(str);
try
{
var _cmdNa:NativeCommand = new NativeCommand();
_cmdNa.runCmd(args,ShowCmdWindow.HIDE);
}
catch(error:Error)
{
}
}
该swc上传到网盘了,自己下。
并且这个swc还有别的好多西,你也可以看看。
链接:https://pan.baidu.com/s/1iEsEPG6Twzxij8RGAtd-dQ
提取码:zaxe
补充:同楼上general_clarke大神补充。
cmd 应该可以,不过找到对应的进程编号是个麻烦的事情。
当然如果进程比较特殊,估计比较好识别!
https://jingyan.baidu.com/article/215817f7b477e61edb142377.html 只能关闭自己通过NativeProcess打开的exe程序。
无法关闭通过openWithDefaultApplication间接打开的
或者其他应用程序
具体办法
var process:NativeProcess = new NativeProcess;
process.start(info);//开启一个exe进程,地址在info中
.........
process.exit();//退出
上述调用exit时,被调用exe可能积极拒绝导致无法关闭,这种现象对多数应用不存在。
另AIR程序被关闭时AIR启动的NativeProcess也会被关闭
如果写过start后下一行就是exit,
刚start的进程可能无法立刻被exit,需要完全初始化 本帖最后由 general_clarke 于 2019-4-23 05:27 编辑
就T大提供资料实际测试,发现是可行思路。
具体代码
var info:NativeProcessStartupInfo = new NativeProcessStartupInfo();
info.executable = new File("C:/Windows/system32/cmd.exe");
info.arguments = new <String>["/c", "tasklist"]
var nativeProcess:NativeProcess = new NativeProcess();
nativeProcess.addEventListener(NativeProcessExitEvent.EXIT, onExit);
nativeProcess.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onOutput);
nativeProcess.start(info);
public var buffer:ByteArray = new ByteArray;
protected function onOutput(event:ProgressEvent):void
{
var pro:NativeProcess = event.target as NativeProcess;
pro.standardOutput.readBytes(buffer, 0, pro.standardOutput.bytesAvailable)
}
public function onExit(e:*):void{
var str:String = buffer.readMultiByte(buffer.length, "ANSI");
trace(str);
}
使用上文代码,
最后得到的str就是本机所有进程列表
类似下文形式
360se.exe 3792 Console 10 50,920 K
360se.exe 6556 Console 10 112,404 K
360se.exe 8488 Console 10 29,568 K
audiodg.exe 4980 Services 0 20,208 K
SearchProtocolHost.exe 14124 Services 0 11,412 K
wpscenter.exe 12968 Console 10 2,628 K
explorer.exe 9452 Console 10 73,296 K
根据这个列表字符串稍加处理可以得到进程名字和对应PID
参考2楼链接的命令,
用和上面相同的办法再调用一次cmd即可消灭进程 补充,
使用上述代码,
必须在app-xml内设置下面参数
<supportedProfiles>extendedDesktop</supportedProfiles>
以及编译器参数的-swf-version适当调高 既然是exe,就可以藉助其他語言來實現開啟和關閉exe
页:
[1]