Electron+HTML做界面,C#做后台(一)中创建了electron程序,既然要与C#联通,那么今天就创建C#程序
1.安装visual studio ,本人使用的是 visual studio 2017
2.创建C#控制台程序
【此处选择.NetFramework,不考虑其他平台】
3.将目录切到上次创建的目录位置
4.打开Visual stuido 2017创建控制台引用,路径选择上面的路径
5.下面将会使用控制台程序启动 electron项目
5.1打开前面的文件路径
5.2拷贝以上文件到 vs程序的 bin\debug目录下,最好单独建个文件夹好一些
5.3在visual程序中创建App.config文件,并添加一下节点内容
ElectronAppPath
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
<appSettings>
<add key="ElectronAppPath" value="electron ./electronApp/"/>
<!--<add key="ElectronAppPath" value="|DataDirectory|\ELectronApp\jpframework-win32-x64\jpframework.exe"/>-->
<add key="port" value="9909"/>
<add key="Connection" value="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\JpFramework.mdf;Integrated Security=True;Connect Timeout=30"/>
</appSettings>
</configuration>
5.4添加引用,读取配置文件ElectronAppPath
信息
5.5在vs项目目录下创建 类 AppTools.cs
,并添加一下内容
/// <summary>
/// 根据 key 得到 AppString节点的值
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public static string Get(string key)
{
return ConfigurationManager.AppSettings[key];
}
/// <summary>
/// 执行CMD语句
/// </summary>
/// <param name="param">要执行的CMD命令参数</param>
public static string RunCmd(string param)
{
var pro = new Process
{
StartInfo =
{
CreateNoWindow = true, FileName ="cmd.exe", UseShellExecute = false, RedirectStandardError = true,
RedirectStandardInput = true,RedirectStandardOutput = true
}
};
pro.Start();
pro.StandardInput.WriteLine(param);
pro.StandardInput.WriteLine("exit");
var outStr = pro.StandardOutput.ReadToEnd();
pro.Close();
return outStr;
}
5.6.1添加引用
5.6.2在 ```Program.cs``文件中添加以下内容
记得引入在头部添加 using System.Windows.Forms;
public static void Main(string[] args)
{
RunElectron();
Console.ReadKey();
}
public static void RunElectron()
{
var cmd = AppTools.Get("ElectronAppPath");
if (cmd.IndexOf("|DataDirectory|") >= 0)
{
cmd = cmd.Replace("|DataDirectory|", Application.StartupPath);
}
var str = AppTools.RunCmd(cmd);
Console.WriteLine(str);
}