Electron+HTML做界面,C#做后台(二)从控制台启动

原作者:东明之羞

Electron+HTML做界面,C#做后台(一)中创建了electron程序,既然要与C#联通,那么今天就创建C#程序

1.安装visual studio ,本人使用的是 visual studio 2017

2.创建C#控制台程序【此处选择.NetFramework,不考虑其他平台】

3.将目录切到上次创建的目录位置

Electron+HTML做界面,C#做后台(二)从控制台启动

4.打开Visual stuido 2017创建控制台引用,路径选择上面的路径

Electron+HTML做界面,C#做后台(二)从控制台启动

5.下面将会使用控制台程序启动 electron项目

5.1打开前面的文件路径

Electron+HTML做界面,C#做后台(二)从控制台启动

5.2拷贝以上文件到 vs程序的 bin\debug目录下,最好单独建个文件夹好一些

Electron+HTML做界面,C#做后台(二)从控制台启动

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信息

Electron+HTML做界面,C#做后台(二)从控制台启动

5.5在vs项目目录下创建 类 AppTools.cs,并添加一下内容

Electron+HTML做界面,C#做后台(二)从控制台启动

		/// <summary>
        ///     根据 key 得到 AppString节点的值
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public static string Get(string key)
        {
            return ConfigurationManager.AppSettings[key];
        }
    <span class="token comment">/// &lt;summary&gt;</span>
    <span class="token comment">///     执行CMD语句</span>
    <span class="token comment">/// &lt;/summary&gt;</span>
    <span class="token comment">/// &lt;param name="param"&gt;要执行的CMD命令参数&lt;/param&gt;</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添加引用

Electron+HTML做界面,C#做后台(二)从控制台启动

5.6.2在 ```Program.cs``文件中添加以下内容

记得引入在头部添加 using System.Windows.Forms;
Electron+HTML做界面,C#做后台(二)从控制台启动

 		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运行

Electron+HTML做界面,C#做后台(二)从控制台启动

如此就大功告成了,后续文章会讲解两者之间的通讯,使用的是 webSocket

项目源码传送门

Electron+HTML做界面,C#做后台(二)从控制台启动

        </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.将目录切到上次创建的目录位置

Electron+HTML做界面,C#做后台(二)从控制台启动

4.打开Visual stuido 2017创建控制台引用,路径选择上面的路径

Electron+HTML做界面,C#做后台(二)从控制台启动

5.下面将会使用控制台程序启动 electron项目

5.1打开前面的文件路径

Electron+HTML做界面,C#做后台(二)从控制台启动

5.2拷贝以上文件到 vs程序的 bin\debug目录下,最好单独建个文件夹好一些

Electron+HTML做界面,C#做后台(二)从控制台启动

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>