Пример #1
0
        private void AddControls()
        {
            if (newWindowList.Count <= 0)
            {
                return;
            }

            while (newWindowList.Count > 0)
            {
                if (this.tabControl.InvokeRequired)
                {
                    SetTextCallback d = new SetTextCallback(AddControls);
                    this.Invoke(d, new object[] { });
                    return;
                }

                UsedWindow tmpWindow = new UsedWindow {
                    handle = IntPtr.Zero, control = new ApplicationControl(), tab = new TabPage()
                };

                tmpWindow.control.SuspendLayout();

                tmpWindow.handle = newWindowList[0].handle;
                tmpWindow.control.WindowHandle = newWindowList[0].handle;
                tmpWindow.control.Location     = new Point(0, 0);
                tmpWindow.control.Size         = new Size(936, 607);

                tmpWindow.tab.Controls.Add(tmpWindow.control);
                tmpWindow.tab.BorderStyle = BorderStyle.FixedSingle;


                this.tabControl.TabPages.Add(tmpWindow.tab);
                tmpWindow.control.Dock = DockStyle.Fill;

                int length = GetWindowTextLength(tmpWindow.handle);
                if (length != 0)
                {
                    StringBuilder builder = new StringBuilder(length);
                    GetWindowText(tmpWindow.handle, builder, length + 1);
                    tmpWindow.tab.Text = builder.ToString();
                }
                tabControl.SelectedTab = tmpWindow.tab;

                if (registeredHooks.Count <= 0 || !registeredHooks.Contains(newWindowList[0].id))
                {
                    SetWinEventHook(EVENT_MIN, EVENT_MAX, IntPtr.Zero, listener, newWindowList[0].id, 0,
                                    WINEVENT_OUTOFCONTEXT | WINEVENT_SKIPOWNTHREAD);
                    registeredHooks.Add(newWindowList[0].id);
                }

                usedWindowList.Add(tmpWindow);
                newWindowList.RemoveAt(0);
            }
        }
Пример #2
0
        private void CustomEvent_Handler()
        {
            UsedWindow tmpWindow = new UsedWindow {
                handle = IntPtr.Zero, control = new ApplicationControl(), tab = new TabPage()
            };

            foreach (var usedWindow in usedWindowList)
            {
                if (usedWindow.tab == tabControl.SelectedTab)
                {
                    tmpWindow = usedWindow;
                }
            }

            int length = GetWindowTextLength(tmpWindow.handle);

            if (length != 0)
            {
                StringBuilder builder = new StringBuilder(length);
                GetWindowText(tmpWindow.handle, builder, length + 1);
                tmpWindow.tab.Text = builder.ToString();
            }
        }
Пример #3
0
        private void CustomEvent_Handler()
        {
            UsedWindow tmpWindow = new UsedWindow { handle = IntPtr.Zero, control = new ApplicationControl(), tab = new TabPage() };

            foreach (var usedWindow in usedWindowList)
            {
                if (usedWindow.tab == tabControl.SelectedTab)
                {
                    tmpWindow = usedWindow;
                }
            }

            int length = GetWindowTextLength(tmpWindow.handle);
            if (length != 0)
            {
                StringBuilder builder = new StringBuilder(length);
                GetWindowText(tmpWindow.handle, builder, length + 1);
                tmpWindow.tab.Text = builder.ToString();
            }
        }
Пример #4
0
        private void AddControls()
        {
            if(newWindowList.Count <= 0) return;

            while (newWindowList.Count > 0)
            {
                if (this.tabControl.InvokeRequired)
                {
                    SetTextCallback d = new SetTextCallback(AddControls);
                    this.Invoke(d, new object[] { });
                    return;
                }

                UsedWindow tmpWindow = new UsedWindow {handle = IntPtr.Zero ,control = new ApplicationControl(), tab = new TabPage()};

                tmpWindow.control.SuspendLayout();

                tmpWindow.handle = newWindowList[0].handle;
                tmpWindow.control.WindowHandle = newWindowList[0].handle;
                tmpWindow.control.Location = new Point(0, 0);
                tmpWindow.control.Size = new Size(936, 607);

                tmpWindow.tab.Controls.Add(tmpWindow.control);
                tmpWindow.tab.BorderStyle = BorderStyle.FixedSingle;

                this.tabControl.TabPages.Add(tmpWindow.tab);
                tmpWindow.control.Dock = DockStyle.Fill;

                int length = GetWindowTextLength(tmpWindow.handle);
                if (length != 0)
                {
                    StringBuilder builder = new StringBuilder(length);
                    GetWindowText(tmpWindow.handle, builder, length + 1);
                    tmpWindow.tab.Text = builder.ToString();
                }
                tabControl.SelectedTab = tmpWindow.tab;

                if(registeredHooks.Count <= 0 || !registeredHooks.Contains(newWindowList[0].id))
                {

                    SetWinEventHook(EVENT_MIN, EVENT_MAX, IntPtr.Zero, listener, newWindowList[0].id, 0,
                        WINEVENT_OUTOFCONTEXT | WINEVENT_SKIPOWNTHREAD);
                    registeredHooks.Add(newWindowList[0].id);
                }

                usedWindowList.Add(tmpWindow);
                newWindowList.RemoveAt(0);
            }
        }