Electron+HTML做界面,C#做后台(二)从控制台启动
原作者:东明之羞
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>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
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]; }
<span class="token comment">/// <summary></span> <span class="token comment">/// 执行CMD语句</span> <span class="token comment">/// </summary></span> <span class="token comment">/// <param name="param">要执行的CMD命令参数</param></span> public <span class="token keyword">static</span> string <span class="token function">RunCmd</span><span class="token punctuation">(</span>string param<span class="token punctuation">)</span> <span class="token punctuation">{</span> var pro <span class="token operator">=</span> new Process <span class="token punctuation">{</span> StartInfo <span class="token operator">=</span> <span class="token punctuation">{</span> CreateNoWindow <span class="token operator">=</span> true<span class="token punctuation">,</span> FileName <span class="token operator">=</span><span class="token string">"cmd.exe"</span><span class="token punctuation">,</span> UseShellExecute <span class="token operator">=</span> false<span class="token punctuation">,</span> RedirectStandardError <span class="token operator">=</span> true<span class="token punctuation">,</span> RedirectStandardInput <span class="token operator">=</span> true<span class="token punctuation">,</span>RedirectStandardOutput <span class="token operator">=</span> true <span class="token punctuation">}</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> pro<span class="token punctuation">.</span><span class="token function">Start</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> pro<span class="token punctuation">.</span>StandardInput<span class="token punctuation">.</span><span class="token function">WriteLine</span><span class="token punctuation">(</span>param<span class="token punctuation">)</span><span class="token punctuation">;</span> pro<span class="token punctuation">.</span>StandardInput<span class="token punctuation">.</span><span class="token function">WriteLine</span><span class="token punctuation">(</span><span class="token string">"exit"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> var outStr <span class="token operator">=</span> pro<span class="token punctuation">.</span>StandardOutput<span class="token punctuation">.</span><span class="token function">ReadToEnd</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> pro<span class="token punctuation">.</span><span class="token function">Close</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">return</span> outStr<span class="token punctuation">;</span> <span class="token punctuation">}</span>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
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);
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
5.6.3 按F5运行
如此就大功告成了,后续文章会讲解两者之间的通讯
,使用的是 webSocket
</div>
<link href="https://****img.cn/release/phoenix/mdeditor/markdown_views-7f770a53f2.css" rel="stylesheet">
</div>
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>