请问C#如何对第三方程序的窗口进行各种操作

caibirdcnb 2016-05-23 02:36:00
各位高手,我是初学者,所以可能问的问题很幼稚。麻烦不吝指教。

假设我要在C#程序中对第三方程序的窗口进行各种操作,例如下面例子将“任务管理器窗口”前置并激活。
通过API函数的FindWindow函数,得到窗口句柄,然后调用SetForegroundWindow函数。

然而,我又看到一篇文章标题为:Microsoft Win32 to Microsoft .NET Framework API Map。
https://msdn.microsoft.com/en-us/library/aa302340.aspx#win32map_windowfunctions

按照里面的对照,Win32的SetForegroundWindow和.NET Framework的System.Windows.Forms.Form.Activate是对应的。
我的问题是:如果使用Form.Activate代替SetForegroundWindow,【这里应该填什么?】.Form.Activate();

另外一个问题是:像这样的问题,用什么百度关键字能找到答案呢?我找了很久都无法找到,但我又觉得我的问题很简单,就是在C#如何对第三方程序的窗口进行各种操作。但确实搜索不到答案。

using System;
using System.Net;
using System.IO;
using System.Runtime.InteropServices;
using System.Windows.Forms;

class Trade
{

// 查找主窗口
[DllImport("user32.dll", EntryPoint = "FindWindow")]
private extern static IntPtr FindWindow(
string lpClassName,
string lpWindowName);

// 窗口最前
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool SetForegroundWindow(IntPtr hWnd);

static void Main()
{
IntPtr maindHwnd = FindWindow(null, "任务管理器");
SetForegroundWindow(maindHwnd);

//【这里应该填什么?】.Form.Activate();

}
}
...全文
902 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
顺便说一下,对第三方窗体的操作,基本可以用消息完成,
  • 打赏
  • 举报
回复
获取句柄之后事情就简单了,不过我所知都是用api操作,一般是发送seedmessage消息让窗口之前
zj_zwl 2016-05-24
  • 打赏
  • 举报
回复
引用 2 楼 caibirdcnb的回复:
[quote=引用 1 楼 xian_wwq 的回复:] c#调用win api操作窗体 拿到窗口句柄后,其他操作都可以通过句柄来实现 文档说了是对应,可不是完全的替代
谢谢回复。 这么说的话,我想请问另外的问题: 1. 如果想激活任务管理器并前置,能不能不使用DllImport实现?如果能,如何实现? 2. Form.Activate()这个方法的格式是什么? 例如,如果是窗体.Form.Activate(),那窗体应该是句柄还是标题还是其它什么呢? [/quote] 外部窗口不能这么用。
caibirdcnb 2016-05-23
  • 打赏
  • 举报
回复
这个论坛怎么回复热心程度比我在人大经济论坛差那么多啊,估计程序员都比较忙。
caibirdcnb 2016-05-23
  • 打赏
  • 举报
回复
引用 1 楼 xian_wwq 的回复:
c#调用win api操作窗体 拿到窗口句柄后,其他操作都可以通过句柄来实现 文档说了是对应,可不是完全的替代
谢谢回复。 这么说的话,我想请问另外的问题: 1. 如果想激活任务管理器并前置,能不能不使用DllImport实现?如果能,如何实现? 2. Form.Activate()这个方法的格式是什么? 例如,如果是窗体.Form.Activate(),那窗体应该是句柄还是标题还是其它什么呢?
xian_wwq 2016-05-23
  • 打赏
  • 举报
回复
c#调用win api操作窗体 拿到窗口句柄后,其他操作都可以通过句柄来实现 文档说了是对应,可不是完全的替代
微信小程序系统教程[初级阶段],微信小程序0基础学起,讲解微信小程序开发的基础知识。 微信小程序系统教程共有“微信小程序系统教程[初级阶段]”、“微信小程序系统教程[中级阶段]——核心技术”、“微信小程序系统教程[阶段]客服消息+微信支付+九宝电商系统”。 “微信小程序系统教程[阶段]全套课程”包含: 1.微信小程序系统教程[阶段]_客服消息 2.微信小程序系统教程[阶段]_微信支付 3.微信小程序系统教程[阶段]_九宝电商系统 学习“微信小程序系统教程[阶段]”要求有微信小程序的基础。建议先学习“微信小程序系统教程[初级阶段]”、“微信小程序系统教程[中级阶段]”,后在报名“微信小程序系统教程[阶段]”。 阶段讲解的客服消息,是针对小程序的。后台程序用接近底层的技术,没有使用三方技术。这样降低同学们学习成本。 微信支付,这部分课程很有难度,要求同学们认真听讲,有不会的技术问题可以请教老师。购买课程后请联系老师,提供单号,给你源程序。 九宝电商系统是一套十分适和学习、项目的课程。既可以系统的学习微信小程序相关知识,还可以修改后上线。 “微信小程序系统教程[中级阶段]——核心技术”重点讲解微信小程序事件、组件、API 微信小程序系统教程[初级阶段],微信小程序0基础学起,讲解微信小程序开发的基础知识。 购买课程的同学,可赠送就九宝老师编写的《微信小程序开发宝典》。 购课请咨询qq2326321088

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧