using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
#region 獲取另一系統文本框值
[DllImport("User32.dll", EntryPoint = "FindWindow")]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("User32.dll", EntryPoint = "FindWindowEx")]
public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpClassName, string lpWindowName);
[DllImport("User32.dll", EntryPoint = "FindEx")]
public static extern IntPtr FindEx(IntPtr hwnd, IntPtr hwndChild, string lpClassName, string lpWindowName);
[DllImport("user32.dll", EntryPoint = "SendMessageA")]
private static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, StringBuilder lParam);
#endregion
public static int WM_GETTEXT = 0x000D;
static void Main(string[] args)
{
IntPtr maindHwnd = FindWindow(null, "Form1"); //獲得句柄
if (maindHwnd != IntPtr.Zero)
{
Console.WriteLine("找到了窗體!");
IntPtr maindHwndp = FindWindowEx(maindHwnd, IntPtr.Zero, null, null);
if (maindHwndp != IntPtr.Zero)
{
Console.WriteLine("找到輸入框!");
const int buffer_size = 1024;
StringBuilder buffer = new StringBuilder(buffer_size);
SendMessage(maindHwndp, WM_GETTEXT, buffer_size, buffer);
Console.WriteLine(string.Format("取到的值是:{0}", buffer.ToString()));//取值一直是空字符串
}
}
else
{
Console.WriteLine("沒有找到窗口");
}
}
}
}
————————————————
版權聲明:本文為CSDN博主「魔尊X」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/mozunx/article/details/79336919