日期:2014-05-18  浏览次数:20811 次

C#中如何使用FindWindow来查找Word,计算器,Notepad等软件

别忘了添加引用

using System.Runtime.InteropServices;

直接添加代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace TestKeyPress
{
    public partial class SimulateInput : Form
    {
        public SimulateInput()
        {
            InitializeComponent();
        }
        [DllImport("USER32.DLL")]
        public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

        private void button1_Click(object sender, EventArgs e)
        {
            if (FindWindow("OpusApp", null) != IntPtr.Zero)
            {
                MessageBox.Show("Find it!");

            }
            else
            {
                MessageBox.Show("Sorry");
            }

        }
    }
}


看过FindWindow函数的都知道,需要两个参数,其实一个也可以入上面的代码,当然也可以替换为

if(FindWindow("OpusApp", "文档1 - Microsoft Word") != IntPtr.Zero)

if (FindWindow(null, "文档1 - Microsoft Word") != IntPtr.Zero)

 

现在主要要解决的是,我怎么知道,类名:OpusApp呢,如何知道窗体名:文档1 - Microsoft Word

这里用visual studio tools的Spy++,下图

                             

从监视-窗口-里找到你想Find的窗口,右键---属性---就找到你想要的东西了。

 

这样下次就不用百度去找,各种我们没听说过的类的名字,和窗口的名字了