Beispiel #1
0
        /// <summary>
        /// EXE로부터 전달받은 메세지를 처리
        /// </summary>
        /// <param name="receiveData"></param>
        /// <param name="token"></param>
        public static void Receive(WinMessage_ClientToServer receiveData, HY_AjaxAgent.TokenData token)
        {
            AJAX_Response sendData;

            switch (receiveData.RESULT_COMMAND)
            {
            case "workComplete":
                sendData = new AJAX_Response(receiveData.PARAM);

                HY_AjaxAgent.sendToWEB(sendData, token);
                break;

            case "startSuccess":
                exeLogging(receiveData.PROCESS_KIND.ToString() + "프로그램 실행 완료 메세지 받음");
                break;

            case "closeProcess":
                exeLogging(receiveData.PROCESS_KIND.ToString() + "프로그램 종료 메세지");
                sendData = new AJAX_Response(new Response_Error("exe close...", "508", "user click exe close before workcomplete."));

                HY_AjaxAgent.sendToWEB(sendData, token);
                break;

            default:
                exeLogging("알 수 없는 EXE Command 받음 : " + receiveData.RESULT_COMMAND);
                break;
            }
        }
        /// <summary>
        /// 서버에 성공적으로 종료되었다는 신호를 보낸다.
        /// </summary>
        private void sendCloseSignal()
        {
            // 종료 신호를 보낸다.
            string closeProcessCommand = "closeProcess";
            WinMessage_ClientToServer closeResponse = new WinMessage_ClientToServer(EXEKIND.TestScan, closeProcessCommand, null);

            AgentInterface.SendToServer(closeResponse, serverHandle);
            Log.Instance.SetLogLevel(string.Format("# Send To Server\n\tCommand : {0}\n\tParam : ", closeProcessCommand, ""));
        }
        /// <summary>
        /// 서버에 성공적으로 실행되었다는 신호를 보낸다.
        /// </summary>
        private void sendStartSignal()
        {
            string startSuccessCommand = "startSuccess";
            WinMessage_ClientToServer successResponse = new WinMessage_ClientToServer(EXEKIND.TestScan, startSuccessCommand, null);

            AgentInterface.SendToServer(successResponse, serverHandle);


            Log.Instance.SetLogLevel(string.Format("# Send To Server\n\tCommand : {0}\n\tParam : ", startSuccessCommand, ""));
        }
        /// <summary>
        /// 서버로 데이터를 전송합니다.
        /// </summary>
        /// <param name="sendServerData">서버 데이터</param>
        /// <param name="serverHandle">서버 핸들</param>
        public static void SendToServer(WinMessage_ClientToServer sendServerData, IntPtr serverHandle)
        {
            string sendMsg = Json.ToString(sendServerData);

            byte[] buff = System.Text.Encoding.Default.GetBytes(sendMsg);

            Win32API.COPYDATASTRUCT cds = new Win32API.COPYDATASTRUCT();
            cds.dwData = IntPtr.Zero;
            cds.cbData = buff.Length + 1;
            cds.lpData = sendMsg;

            Win32API.SendMessage(serverHandle, Win32API.WM_COPYDATA, 0, ref cds);
        }
        private void btn_Save_Click(object sender, EventArgs e)
        {
            if (img == null)
            {
                MessageBox.Show(this, "이미지를 가져와야 합니다.");
                return;
            }

            string filePath = img.FilePath;

            if (!File.Exists(filePath))
            {
                MessageBox.Show(this, "이미지가 존재하지 않습니다.");
                return;
            }

            string imgbinary_base64 = Encode.ImgBinaryToBase64String(filePath);

            SendParam sendParam = new SendParam(img.ScanDate, filePath, imgbinary_base64);

            WinMessage_ClientToServer workCompleteResponse = new WinMessage_ClientToServer(EXEKIND.TestScan, "workComplete", sendParam);

            AgentInterface.SendToServer(workCompleteResponse, serverHandle);
        }