控制台应用程序字符串输出到另一个Web应用程序文本框

时间:2019-02-13 04:43:39

标签: c#

我构建了一个控制台应用程序,该应用程序使用扫描仪扫描QR码并将值作为字符串输出到控制台应用程序中。

我有一个单独的Web应用程序,每次用户扫描QR码时,该应用程序都会将此控制台输出用作文本框输入。我不知道如何在这两个应用程序之间建立连接,因为它们分别运行。

public static void InitializeSettings() {
            SerialPortManager _spManager = new SerialPortManager();
            SerialSettings mySerialSettings = _spManager.CurrentSerialSettings;

            _spManager.NewSerialDataRecieved += new EventHandler<SerialDataEventArgs>(_spManager_NewSerialDataRecieved);

            // use to initialize serial port settings
            mySerialSettings.PortName = "";
            mySerialSettings.BaudRate = ;
            mySerialSettings.DataBits = ;
            mySerialSettings.Parity = System.IO.Ports.Parity.None;
            mySerialSettings.StopBits = System.IO.Ports.StopBits.One;
            _spManager.CurrentSerialSettings = mySerialSettings;

            // Start thread to start listening
            Thread listenThread = new Thread( _spManager.StartListening);
            listenThread.SetApartmentState(ApartmentState.STA);
            listenThread.IsBackground = false;

            listenThread.Start();
            Console.ReadKey();
        }

        static void _spManager_NewSerialDataRecieved(object sender, SerialDataEventArgs e)
        {
            string data = Encoding.Default.GetString(e.Data);
            Console.WriteLine(data);
            Console.ReadKey();
        }

以上代码在控制台中打印QR值。关于此的任何想法都会更有帮助。

谢谢

1 个答案:

答案 0 :(得分:0)

理想情况下,最好将条形码扫描仪设置为系统中的常规键盘;这样一来,您就可以专注于网页中的文本框,它应该会收到扫描的代码,通常后跟enter键。

如果这不可能,并且假设您可以修改此Web应用程序并且只能通过串行端口与条形码扫描器进行交互(如我在提供的代码中所看到的),则可以从您的HTTP服务器中公开控制台应用程序,然后您的Web应用程序可以使用Web套接字或通过Ajax的拉策略连接到该应用程序,并监听可用于填充文本框并执行任何其他所需操作的扫描代码;您还需要在此http服务器上设置CORS,以允许从您的Web应用程序域进行访问。

如果该http服务器创意对您来说听起来不错,请看一下SignalR,它可以帮助您实现这一目标; nuget包的名称为:Microsoft.AspNet.SignalR.SelfHost

一些文档可以在这里找到:https://docs.microsoft.com/en-us/aspnet/signalr/overview/deployment/tutorial-signalr-self-host