winform窗体跟随

public partial class Form1 : Form
    {
        [DllImport("User32.dll", EntryPoint = "FindWindow")]
        private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
        [DllImport("user32.dll")]
        public static extern bool ClientToScreen(int hwnd, ref POINT pos);

        [StructLayout(LayoutKind.Sequential)]
        public struct POINT
        {
            public int X;
            public int Y;

            public override string ToString()
            {
                return "{" + X + "," + Y + "}";
            }
        }

        public Form1()
        {
            InitializeComponent();
            TopMost = true;
            new Thread(() =>
            {
                while (true)
                {
                    //微信文章浏览器
                    var handle = FindWindow("CefWebViewWnd", null);
                    if (handle == IntPtr.Zero)
                    {
                        this.Hide();
                        return;
                    }
                    POINT p = new POINT();
                    if (ClientToScreen(handle.ToInt32(), ref p))
                    {
                        this.Invoke(new Action(() =>
                        {
                            if (!this.Visible)
                            {
                                this.Show();
                            }

                            Location = new Point(p.X, p.Y + Height);
                        }));
                    }
                    Thread.Sleep(100);
                }
            }).Start();
        }

    }

 

posted @ 2022-12-22 17:46  李子深  阅读(86)  评论(0编辑  收藏  举报
李子深的博客

真诚赞赏,手留余香

使用微信扫描二维码完成支付