Unity 定时开启/关闭外部应用
来源:互联网 发布:大唐电信数据所地址 编辑:程序博客网 时间:2024/05/17 04:24
原帖地址:https://www.cnblogs.com/wuzhang/p/wuzhang20151031.html
自从加入工作的队伍里,博客都荒废了,今天周末,难得清静,写篇博客!刚才看到了Process类,随手写了个小demo.给大家分享下!
首先大家要对Process类有一些简单的了解,参考资料:https://msdn.microsoft.com/zh-cn/library/system.diagnostics.process%28v=vs.110%29.aspx 如果有兴趣可以深入学习。学习过后,我们大家先要写一些挂机软件,分分钟就能搞定了!如果你编程更厉害可以写一些游戏外挂什么的,当然不建议大家这么做,自己写着玩还是很有意思的!
1,打开Uinity 建一新工程。
2.创建脚本文件 CallApplication.cs
using UnityEngine;using System.Collections;using System.Diagnostics;using System.Collections.Generic;using System;public class CallApplication : MonoBehaviour{// Use this for initializationprivate static string outputPath = "D:/kuwo/kuwomusic/8.0.3.0_BCS30/KwMusic.exe";private int x = 0, y = 0;private bool isOn = false;private int minute = 0;// Use this for initializationvoid Start(){//ListAllAppliction();UnityEngine.Debug.Log("当前应用:" + Process.GetCurrentProcess().ProcessName+" 进程ID: "+Process.GetCurrentProcess().Id);}void OnGUI(){if (GUI.Button(new Rect(10, 10, 200, 50), "打开外部应用")){if (CheckProcess("kwmusic"))return;elseStartProcess(outputPath);}if (GUI.Button(new Rect(10, 60, 200, 50), "杀死应用进程")){KillProcess("kwmusic");}if (GUI.Button(new Rect(10, 110, 200, 50), "开启定时关闭")){minute = System.DateTime.Now.Minute + 1;isOn = true;}if (isOn){GUI.contentColor = Color.red;GUI.Label(new Rect(10, 160, 160, 30), "\t倒计时:" + (60 - System.DateTime.Now.Second));if (System.DateTime.Now.Minute == minute){UnityEngine.Debug.Log("自动关闭应用....");KillProcess("kwmusic");isOn = false;}}}/// <summary>/// 开启应用/// </summary>/// <param name="ApplicationPath"></param>void StartProcess(string ApplicationPath){UnityEngine.Debug.Log("打开本地应用");Process foo = new Process();foo.StartInfo.FileName = ApplicationPath;foo.Start();}/// <summary>/// 检查应用是否正在运行/// </summary>bool CheckProcess(string processName){bool isRunning = false;Process[] processes = Process.GetProcesses();int i = 0;foreach (Process process in processes){try{i++;if (!process.HasExited){if (process.ProcessName.Contains(processName)){UnityEngine.Debug.Log(processName + "正在运行");isRunning = true;continue;}else if (!process.ProcessName.Contains(processName)&&i>processes.Length){UnityEngine.Debug.Log(processName + "没有运行");isRunning = false;}}}catch (Exception ep){}}return isRunning;}/// <summary>/// 列出已开启的应用/// </summary>void ListAllAppliction(){Process[] processes = Process.GetProcesses();int i = 0;foreach (Process process in processes){try{if (!process.HasExited){UnityEngine.Debug.Log("应用ID:"+process.Id+"应用名:"+process.ProcessName);}}catch (Exception ep){}}}/// <summary>/// 杀死进程/// </summary>/// <param name="processName">应用程序名</param>void KillProcess(string processName){Process[] processes = Process.GetProcesses();foreach (Process process in processes){try{if (!process.HasExited){if (process.ProcessName == processName){process.Kill();UnityEngine.Debug.Log("已杀死进程");}}}catch (System.InvalidOperationException){//UnityEngine.Debug.Log("Holy batman we've got an exception!");}}}}
3.将脚本挂到摄像机上即可。
4.Ctrl+P走你!
检查当前打开的进程(系统应用除外),获取到之后,怎么操作It's up to you!
5,接着看受否可以启动外部应用,我就以酷我音乐盒为例吧!
还真的打开了啊!
6,试试关闭它吧。
真的关了,再次打开。
再试试定时关闭,1分钟测试时间!
已经OK了吧!
下面简单的看下代码,主要就有这几个方法:
大家可以自己去扩充方法!
阅读全文
1 0
- Unity 定时开启/关闭外部应用
- MFC开启与关闭外部进程
- mysql如何开启关闭外部连接
- 定时自动开启和关闭Azure虚拟机
- unity中开启和关闭协同程序
- ubuntu下定时执行工具cron开启关闭重启
- android 定时任务 隔一段时间执行 开启 关闭
- android 定时任务 隔一段时间执行 开启 关闭
- android 定时任务 隔一段时间执行 开启 关闭
- mysql 定时任务创建开启修改关闭实现
- springboot自带定时器实现定时任务的开启关闭以及动态修改定时规则
- iPhone/iPad应用使用麦克风的开启和关闭
- 安卓系统监听应用开启和关闭的实现
- 定时自动启动外部应用软件并限时关闭此软件程序
- 开启mysql定时任务,关闭过了求助时间的帖子
- 原生IOS应用(Swift)反复打开关闭Unity View
- 开启数据库外部访问
- 线程定时开启
- 内网ping不通
- elasticsearch None of the configured nodes are available遇到的坑
- java -- cropper裁剪图片并base64上传 移动端简单示例
- 微服务的4个设计原则和19个解决方案
- DeepLearning-Xavier在caffe中的实现
- Unity 定时开启/关闭外部应用
- 数据库中间件mycat测试之一
- 效率接口-组织人员同步接口
- MOBILedit Forensic Express(手机取证工具)官方64位版V4.2.0.10865下载 | MOBILedit Forensic Express破解版
- tomcat启动报错
- 相同实体字段的赋值
- 【学习】CSS基础(二)
- oracle基础入门(1)--用户名表空间
- LinkedList和ArrayList的区别