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);
}