基本上我正在尝试创建一个能够启动和关闭.bat文件的程序。我设法让它启动bat文件,但我无法弄清楚如何让它关闭.bat文件。
这是类代码:
using System;
using System.Diagnostics;
using System.Threading;
using System.ComponentModel;
namespace Launcher
{
class MyProcess
{
public static void LaunchProcess()
{
Process myProcess = new Process();
try
{
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.FileName = "C:\example.bat";
myProcess.StartInfo.CreateNoWindow = true;
myProcess.Start();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
}
我知道要杀死这个过程我必须使用myProcess.Kill();
但是我不确定如何将它添加到代码中,就好像我要重新调用“启动过程”一样。然后myProcess将被覆盖
答案 0 :(得分:1)
您的代码使用本地变量来存储流程信息,而不会将其保存以供以后的操作使用。如果您想将此作为静态方法保留,则返回Process
作为结果:
public static class MyProcess
{
public static void LaunchProcess()
{
Process myProcess = new Process();
try
{
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.FileName = "C:\example.bat";
myProcess.StartInfo.CreateNoWindow = true;
myProcess.Start();
return myProcess;
}
catch (Exception e)
{
myProcess.Dispose();
Console.WriteLine(e.Message);
}
}
}
现在您有一个代表新进程的Process
对象,如果您需要删除它,可以在其上调用Kill
方法。
另一种方法是将其更改为非静态,并让类实例在请求时终止进程。根据您正在做的事情,实施IDisposable
:
public class MyProcess : IDisposable
{
private Process myProcess = null;
~MyProcess()
{
Dispose(false);
}
public void Dispose(bool dispose)
{
Dispose();
}
public void Dispose()
{
if (myProcess != null)
{
if (!myProcess.HasExited)
myProcess.Kill();
myProcess.Dispose();
myProcess = null;
}
}
public bool LaunchProcess()
{
try
{
myProcess = new Process();
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.FileName = "C:\example.bat";
myProcess.StartInfo.CreateNoWindow = true;
myProcess.Start();
return true;
}
catch (Exception e)
{
myProcess.Dispose();
Console.WriteLine(e.Message);
}
return false;
}
}
这应该确保该过程不会超过您自己的程序。
答案 1 :(得分:0)
如何将import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends Activity {
private WebView mWebView = (WebView) findViewById(R.id.activity_main_webview);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(amapps.com.uhss.R.layout.activity_main);
WebView mWebView = (WebView) findViewById(R.id.activity_main_webview);
mWebView.setWebViewClient(new WebViewClient());
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(false);
mWebView.loadUrl("http://uhsswordandshield.com/");
mWebView.getSettings().setSupportMultipleWindows(true);
}
命令添加到批处理文件