错误IndexOutOfRange / Sendkey到后台应用程序

时间:2014-10-02 01:25:34

标签: c#

我正在尝试向后台运行的程序发送一次击键。我实际上能够做到这一点,但由于某种原因,我无法用我想要的程序做到这一点。代码在一个程序中工作正常,但是当我更改进程名称时,我收到错误System.IndexOutOfRangeException并且我不知道为什么。

这是我的一个程序的工作代码。

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

namespace AntiAfk
{
    static class Program
    {
        [DllImport("user32.dll")]
        [return: MarshalAs(UnmanagedType.Bool)]
        static extern bool SetForegroundWindow(IntPtr hWnd);

        static void Main(string[] args)
        {
            Process[] processes = Process.GetProcessesByName("aion.bin");
            Process game1 = processes[0];

            IntPtr p = game1.MainWindowHandle;

            SetForegroundWindow(p);
            SendKeys.SendWait("{e}");
            Thread.Sleep(1000);
            SendKeys.SendWait("{e}");

        }
    }
}

现在如果我将“aion.bin”更改为“archeage.exe”它不起作用,它会抛出该错误。详情如下;指数数组的边界之外。 HResult -2146233080。有什么想法吗?

编辑 - 答案 - 我的进程名称错误。

0 个答案:

没有答案