Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从C向Java应用程序(Minecraft)发送输入#_C#_Java - Fatal编程技术网

C# 从C向Java应用程序(Minecraft)发送输入#

C# 从C向Java应用程序(Minecraft)发送输入#,c#,java,C#,Java,我试图制作一个程序,向minecraft游戏发送一些文本,这是一个java应用程序,但我用C#编写代码 这是我的代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using

我试图制作一个程序,向minecraft游戏发送一些文本,这是一个java应用程序,但我用C#编写代码

这是我的代码:

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

namespace Minecraft1
{
public partial class Form1
{ 
    [DllImportAttribute( "User32.dll" )]

    private static extern int FindWindow( String ClassName, String
    WindowName );

    [DllImportAttribute( "User32.dll" )]
    private static extern int SetForegroundWindow( int hWnd );

    private void button1_Click(object sender, EventArgs e)
    {
        //to activate an application
        int hWnd = FindWindow(null, "Minecraft");
        if (hWnd > 0)
        {
            SetForegroundWindow(hWnd);
            SendKeys.Send("/Give metrius 64 64");
        }
    }
}
}
但是当我运行它,点击按钮时,它会激活窗口并发送类似的信息 “Meeeetrrius”

  • 有什么线索吗?:)

谢谢

在发送按键之前,窗口可能不在前台 你能试试吗

    if (hWnd > 0)
    {
        SetForegroundWindow(hWnd);
        Thread.Sleep(50); // intentional delay to ensure the window is in the foreground
        SendKeys.Send("/Give metrius 64 64");
    }

在发送按键之前,窗口可能不在前台 你能试试吗

    if (hWnd > 0)
    {
        SetForegroundWindow(hWnd);
        Thread.Sleep(50); // intentional delay to ensure the window is in the foreground
        SendKeys.Send("/Give metrius 64 64");
    }

好吧,它应该发送“/给metrius 64”-但是当我第一次点击按钮时,它什么也不发送该文本到底发送了什么?您是否尝试打开记事本窗口并向其发送文本。这将确认文本显示的内容。如果我将文本发送到记事本,它会正确发送。无意冒犯,Mathias,但是
/Give metrius 64
不起作用,因为
64
不是一个项目-Do
/Give metrius diamond_剑64 0
它应该发送“/Give metrius 64”-但是当我第一次点击按钮时,它什么也不发送该文本到底发送了什么?您是否尝试打开记事本窗口并向其发送文本。这将确认文本显示的内容。如果我将文本发送到记事本,它会正确发送。无意冒犯Mathias,但是
/Give metrius 64
不起作用,因为
64
不是一个项目-Do
/Give metrius diamond_剑64 0
好的,我刚刚测试过它-现在它写了“/giiive metrius 64”嗯,一定是minecraft程序的问题-我刚试着把它发送到minecraft服务器,这很有效-嗯…试着增加睡眠。如果失败了,那么你可以试着一次发送一封信,每封信之间都有一个睡眠时间,但是这很可能与java程序的输入读取有关。。但是,如果我第一次点击按钮,它不会发送任何信息,我会尝试查看它,如果它现在工作正常,请您发布您为使其正常工作所做的操作。如果其他人有类似的问题,他们可以看到你的解决方案。好的,我刚刚测试了它-现在它写了“/giiive metrius 64 64”嗯,一定是minecraft程序的问题-我刚刚尝试将它发送到minecraft服务器,这很有效-嗯…尝试增加睡眠。如果失败了,那么你可以试着一次发送一封信,每封信之间都有一个睡眠时间,但是这很可能与java程序的输入读取有关。。但是,如果我第一次点击按钮,它不会发送任何信息,我会尝试查看它,如果它现在工作正常,请您发布您为使其正常工作所做的操作。然后,如果其他人有类似的问题,他们将能够看到您的解决方案。