示例#1
0
        private static void LoadHST(object param)
        {
            try
            {
                Node       OCR  = param as Node;
                Form       form = Application.OpenForms["FormOCR"];
                TabControl tabControl1;
                if (form == null)
                {
                    return;
                }

                tabControl1 = form.Controls.Find("tabControl1", true).FirstOrDefault() as TabControl;
                if (tabControl1 == null)
                {
                    return;
                }

                // SpinWait.SpinUntil(() => false, 1000);


                SpinWait.SpinUntil(() => (from prs in Process.GetProcessesByName("VB9BReaderForm").OfType <Process>().ToList()
                                          where prs.MainWindowTitle.Equals("[" + OCR.AdrNo + "]Wafer Reader Version 4.3.1.0")
                                          select prs).Count() != 0, 60000);
                SpinWait.SpinUntil(() => false, 1000);
                // Put it into this form
                if (tabControl1.InvokeRequired)
                {
                    AssignUI ph = new AssignUI(LoadHST);
                    tabControl1.BeginInvoke(ph, param);
                }
                else
                {
                    var ps = from prs in Process.GetProcessesByName("VB9BReaderForm").OfType <Process>().ToList()
                             where prs.MainWindowTitle.Equals("[" + OCR.AdrNo + "]Wafer Reader Version 4.3.1.0")
                             select prs;
                    if (ps.Count() != 0)
                    {
                        tabControl1.TabPages.Add(OCR.Name, OCR.Name);
                        Process p2 = ps.First();
                        appWin2 = p2.MainWindowHandle;
                        SetParent(p2.MainWindowHandle, tabControl1.TabPages[OCR.Name].Handle);
                        MoveWindow(p2.MainWindowHandle, 0, -30, tabControl1.TabPages[OCR.Name].Width, tabControl1.TabPages[OCR.Name].Height + 30, true);
                        var s = GetWindowLong(p2.MainWindowHandle, GWL_STYLE);
                        SetWindowLong(p2.MainWindowHandle, GWL_STYLE, s | WS_CHILD);
                    }
                    //ControllerManagement.Get(OCR.Controller).Connect();
                    pCnt--;
                    if (pCnt == 0)
                    {
                        Button Reload = form.Controls.Find("Reload_btn", true).FirstOrDefault() as Button;
                        Reload.Enabled = true;
                    }
                }
            }
            catch (Exception e)
            {
                logger.Error(e.StackTrace);
            }
        }
示例#2
0
        private static void LoadCOGNEX(object param)
        {
            try
            {
                Node OCR = param as Node;
                //SpinWait.SpinUntil(() => false, 1000);

                //Cognex Wafer ID - 4.5.0
                SpinWait.SpinUntil(() => Process.GetProcessesByName("WaferID")[0].MainWindowTitle.Equals("Cognex Wafer ID - 4.5.0"), 60000);
                SpinWait.SpinUntil(() => false, 1000);
                //SpinWait.SpinUntil(() => Process.GetProcessesByName("WaferID").Length != 0, 60000);

                //logger.Debug("1" + Process.GetProcessesByName("WaferID")[0].MainWindowTitle);
                //SpinWait.SpinUntil(() => false, 3000);
                //logger.Debug("2");
                Form       form = Application.OpenForms["FormOCR"];
                TabControl tabControl1;
                if (form == null)
                {
                    return;
                }

                tabControl1 = form.Controls.Find("tabControl1", true).FirstOrDefault() as TabControl;
                if (tabControl1 == null)
                {
                    return;
                }


                if (tabControl1.InvokeRequired)
                {
                    AssignUI ph = new AssignUI(LoadCOGNEX);
                    tabControl1.BeginInvoke(ph, param);
                }
                else
                {
                    tabControl1.TabPages.Add("COGNEX", "COGNEX");
                    Process p2 = Process.GetProcessesByName("WaferID")[0];
                    appWin2 = p2.MainWindowHandle;
                    SetParent(p2.MainWindowHandle, tabControl1.TabPages["COGNEX"].Handle);
                    MoveWindow(p2.MainWindowHandle, 0, -30, tabControl1.TabPages["COGNEX"].Width, tabControl1.TabPages["COGNEX"].Height + 30, true);
                    var s = GetWindowLong(p2.MainWindowHandle, GWL_STYLE);
                    SetWindowLong(p2.MainWindowHandle, GWL_STYLE, s | WS_CHILD);
                    pCnt--;
                    if (pCnt == 0)
                    {
                        Button Reload = form.Controls.Find("Reload_btn", true).FirstOrDefault() as Button;
                        Reload.Enabled = true;
                    }
                }
            }
            catch (Exception e)
            {
                logger.Error(e.StackTrace);
            }
        }