近段时间由于工作的需要访问其它进程的相关数据,现将其中的一些代码写下来,以备参考.
代码如下(系统自动生成的没有列出来):1using System;
2using System.Collections.Generic;
3using System.ComponentModel;
4using System.Data;
5using System.Drawing;
6using System.Text;
7using System.Windows.Forms;
8using System.Runtime.InteropServices;
9
10namespace WindowsApplication1
11{
12public partial class Form1 : Form
13{
14[DllImport("User32.dll", EntryPoint = "FindWindow")]
15private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
16
17[DllImport("user32.dll", EntryPoint = "FindWindowEx")]
18private static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
19
20[DllImport("User32.dll", EntryPoint = "SendMessage")]
21private static extern int SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, string lParam);
22
23public Form1()
24{
25InitializeComponent();
26}
27
28private void button1_Click(object sender, EventArgs e)
29{
30const int WM_GETTEXT = 0x000D;
31
32string lpszParentClass = "Form";
33string lpszParentWindow = "Form1";
34string lpszClass = "Button";
35
36string getTxt = "";
37IntPtr ParenthWnd = new IntPtr(0);
38IntPtr EdithWnd = new IntPtr(0);
39
40ParenthWnd = FindWindow(lpszParentClass, lpszParentWindow);
41if (!ParenthWnd.Equals(IntPtr.Zero))
42{
43EdithWnd = FindWindowEx(ParenthWnd, EdithWnd, lpszClass, "");
44if (!EdithWnd.Equals(IntPtr.Zero))
45{
46SendMessage(EdithWnd, WM_GETTEXT, (IntPtr)0, getTxt);
47if (getTxt.Length != 0)
48{
49MessageBox.Show(getTxt);
50}
51}
52
53}
54}
55}
56}
![](https://img2024.cnblogs.com/blog/35695/202407/35695-20240713070336838-1837943664.jpg)