想做一个C#小程序,求源代码 30

我用的VS2019,在winform窗体中做一个C#小程序,求大佬指教,新手完全不知道咋写。实现图片中的操作就可以。点击查找按钮,鼠标移动选择指定窗口,然后text中显示... 我用的VS2019,在winform窗体中做一个C#小程序,求大佬指教,新手完全不知道咋写。实现图片中的操作就可以。点击查找按钮,鼠标移动选择指定窗口,然后text中显示出指定窗口句柄 展开
 我来答
魔法软糖™
2020-07-21 · TA获得超过837个赞
知道小有建树答主
回答量:822
采纳率:94%
帮助的人:146万
展开全部

做了个简单的指向窗口显示句柄,只能显示一级窗口。

自己拖个 Button 控件和 Timer 控件。把下面的控件名称改一下。

把 Button 拖大点可以显示多行文字内容。

API声明放到最前面。


        [DllImport("User32.dll", CharSet = CharSet.Ansi, EntryPoint = "WindowFromPoint")]

        public static extern IntPtr WindowFromPoint(int xPoint, int yPoint);

        [DllImport("user32.dll", EntryPoint = "GetCursorPos")]

        public static extern int GetCursorPos(ref MOUSEPOINT lpPoint);

        [DllImport("user32.dll", EntryPoint = "GetWindowText")]

        public static extern int GetWindowText(IntPtr hwnd, StringBuilder lpString, int cch);


bool 窗体捕获模式 == false;

private void 按钮_窗口句柄测试_Click(object sender, EventArgs e) {

            if (窗体捕获模式 == false) {

                窗体捕获模式 = true;

                按钮_窗口句柄测试.BackColor = Color.LightBlue;

                timer1.Enabled = true;

            } else {

                窗体捕获模式 = false;

                按钮_窗口句柄测试.BackColor = Color.WhiteSmoke;

                timer1.Enabled = false;

            }

        }


        private void timer1_Tick(object sender, EventArgs e) {

            if (窗体捕获模式) {

                MOUSEPOINT p = new MOUSEPOINT();

                var k = 0;

                k = 窗体API.GetCursorPos(ref p);

                var 窗体句柄 = 窗体API.WindowFromPoint(p.X, p.Y);

                var 标题 = 获取窗体标题(窗体句柄);


                按钮_窗口句柄测试.Text = string.Format("[ {0}, {1} ]",p.X,p.Y) +"\r\n"+ 标题 + "\r\n" + 窗体句柄.ToString();

            }

        }

        public static string 获取窗体标题(IntPtr 句柄, int 文本长度 = 200) {

            StringBuilder sb = new StringBuilder(文本长度);

            int i = 窗体API.GetWindowText(句柄, sb, sb.Capacity);

            return sb.ToString();

        }


要想实现 SPY++ 的功能还要参见 ChildWindowFromPoint, ChildWindowFromPointEx, RealChildWindowFromPoint 等

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳光的雷咩咩
2020-07-20 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7779万
展开全部
这不就是spy++这种软件的功能吗

网上搜下这种工具的源码就有了
追问
搜了,调用以后总是报错,弄了2天了。。。快愁死我了,我是做java的,第一次做C#,完全没有一点头绪,所以才想找个大哥,拿一份能跑通的源码研究研究
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式