Пример #1
0
        //--------------------------------------------------------------------------------------
        public TSForm()
        {
            m_NavBar.Form = this;
            InitializeComponent();

            this.Text        = AE_RemapExceed.Properties.Resources.AppName;
            tsGrid1.TSForm   = this;
            this.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.m_MouseWheel);


            tsGrid1.GetStatus();

            SetFrameDisp(tsGrid1.tsd.FrameDisp);
            SetLayout();
            toolStripStatusLabel1.Text = tsGrid1.SelInfo;
            ShortCutPre();



            if (PrefLoad() == false)
            {
                this.Left = 100;
                this.Top  = 100;
            }

            BackLoad();

            string[] cmds;
            cmds = System.Environment.GetCommandLineArgs();
            GetCommand(cmds);


            IpcServerChannel servChannel = new IpcServerChannel("processtrancetest");

            ChannelServices.RegisterChannel(servChannel, true);

            // イベントを登録
            m_msg = new AE_RemoteInfo();

            m_msg.OnTrance += new AE_RemoteInfo.CallEventHandler(m_msg_OnTrance);
            RemotingServices.Marshal(m_msg, "message", typeof(AE_RemoteInfo));


            NavBarSetup();
            this.Invalidate();
        }
Пример #2
0
        //
        static void Main(string[] args)
        {
            EXEC_MODE mode     = EXEC_MODE.NONE;
            string    filename = "";


            //最初に起動しているか調べる
            bool IsExecAE = (Process.GetProcessesByName("AE_RemapExceed").Length > 0);


            if (args.Length > 0)
            {
                for (int i = 0; i < args.Length; i++)
                {
                    char c = args[i][0];
                    if ((c == '-') || (c == '/'))
                    {
                        string s = args[i].Substring(1).ToUpper();
                        switch (s)
                        {
                        case "EXENOW":
                            if (mode == EXEC_MODE.NONE)
                            {
                                mode = EXEC_MODE.EXENOW;
                            }
                            break;

                        case "CALL":
                            if (mode == EXEC_MODE.NONE)
                            {
                                mode = EXEC_MODE.CALL;
                            }
                            break;

                        case "ACTIVE":
                            if (mode == EXEC_MODE.NONE)
                            {
                                mode = EXEC_MODE.ACTIVE;
                            }
                            break;

                        case "EXPORT":
                            if (mode == EXEC_MODE.NONE)
                            {
                                mode = EXEC_MODE.EXPORT;
                            }
                            break;

                        case "EXPORT_LAYER":
                            if (mode == EXEC_MODE.NONE)
                            {
                                mode = EXEC_MODE.EXPORT_LAYER;
                            }
                            break;

                        case "IMPORT_LAYER":
                            if (mode == EXEC_MODE.NONE)
                            {
                                mode = EXEC_MODE.IMPORT_LAYER;
                            }
                            break;

                        default:
                            if (mode == EXEC_MODE.NONE)
                            {
                                mode = EXEC_MODE.HELP;
                            }
                            break;
                        }
                    }
                    else
                    {
                        if (filename == "")
                        {
                            if (File.Exists(args[i]) == true)
                            {
                                filename = args[i];
                            }
                        }
                    }
                }
            }
            //何も引数がないのなら終わる
            if (mode == EXEC_MODE.NONE)
            {
                return;
            }


            if (mode == EXEC_MODE.HELP)
            {
                return;
            }
            else if (mode == EXEC_MODE.EXENOW)
            {
                Console.Write(String.Format("{0}", IsExecAE).ToLower());
                return;
            }
            else if (mode == EXEC_MODE.CALL)
            {
                if (IsExecAE == false)
                {
                    string p = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "AE_RemapExceed.exe");
                    if (File.Exists(p) == false)
                    {
                        Console.Write("errer no AE_RemapExceed.exe");
                        return;
                    }
                    else
                    {
                        Process.Start(p);
                    }
                }
                return;
            }
            else
            {
                if (IsExecAE == false)
                {
                    Console.Write("errer AE_remap execute");
                    return;
                }

                //プロセスで制御
                AE_RemoteInfo m_msg = null;

                IpcClientChannel clientChannel = new IpcClientChannel();
                ChannelServices.RegisterChannel(clientChannel, true);
                m_msg = (AE_RemoteInfo)Activator.GetObject(typeof(AE_RemoteInfo), "ipc://processtrancetest/message");



                if ((mode == EXEC_MODE.EXPORT) || (mode == EXEC_MODE.EXPORT_LAYER))
                {
                    //予め書き出すファイルがあったら消しておく
                    filename = System.IO.Path.GetTempPath();
                    filename = Path.Combine(filename, "ae_remap_temp.json");
                    if (File.Exists(filename) == true)
                    {
                        File.Delete(filename);
                    }
                }
                else if (mode == EXEC_MODE.IMPORT_LAYER)
                {
                    //読み込むファイルがなければエラー
                    if (File.Exists(filename) == false)
                    {
                        Console.Write("errer none import file");
                        return;
                    }
                }
                //オプションを選ぶ
                switch (mode)
                {
                case EXEC_MODE.ACTIVE:
                    m_msg.DataTrance((int)mode, filename);
                    break;

                case EXEC_MODE.EXPORT:
                    m_msg.DataTrance((int)mode, filename);
                    break;

                case EXEC_MODE.EXPORT_LAYER:
                    m_msg.DataTrance((int)mode, filename);
                    break;

                case EXEC_MODE.IMPORT_LAYER:
                    m_msg.DataTrance((int)mode, filename);
                    break;
                }
                //エキスポート時はファイル作成されるまで待つ
                if ((mode == EXEC_MODE.EXPORT) || (mode == EXEC_MODE.EXPORT_LAYER))
                {
                    int idx = 0;
                    do
                    {
                        SleepAsync();
                        idx++;
                        if (idx > 500)
                        {
                            Console.Write("errer export");
                            return;
                        }
                    } while (File.Exists(filename) == false);
                    //成功したら
                    Console.Write(ToJSP(filename));
                }
                return;
            }
        }