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();
}
}
