ShowWindow / keystrokes仅与记事本一起使用

时间:2015-06-25 20:33:54

标签: c#

我正在尝试打开计算器并向其发送击键。在做了一些研究后,我发现了一些记事本的工作代码,但是当我将路径替换为计算器时,它所做的只是打开计算器。

这是我的代码。一切顺利,我在ShowWindow方法中玩了整数,以便在打开时最大化,最小化等记事本。

但是,当我使用计算器的其他路径时,它会打开计算器,然后什么也不做。它不仅拒绝发送击键,我似乎无法将其最小化(最大化计算器无论如何都不起作用),这意味着ShowWindow方法也不起作用。

using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace TextSendKeys
{
class Program
{
    [DllImport("user32.dll")]
    static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

    static void Main(string[] args)
    {
        Process notepad = new Process();
        notepad.StartInfo.FileName = @"C:Windows\notepad.exe";
        //notepad.StartInfo.FileName = @"C:\Windows\System32\calc.exe";

        notepad.Start();

        // Need to wait for notepad to start
        notepad.WaitForInputIdle();

        IntPtr p = notepad.MainWindowHandle;
        ShowWindow(p, 3);
        SendKeys.SendWait("123");
    }
}

}

0 个答案:

没有答案