各位高手,我是初学者,所以可能问的问题很幼稚。麻烦不吝指教。
假设我要在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();
}
}