C# 从C向Java应用程序(Minecraft)发送输入#
我试图制作一个程序,向minecraft游戏发送一些文本,这是一个java应用程序,但我用C#编写代码 这是我的代码: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
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程序的输入读取有关。。但是,如果我第一次点击按钮,它不会发送任何信息,我会尝试查看它,如果它现在工作正常,请您发布您为使其正常工作所做的操作。然后,如果其他人有类似的问题,他们将能够看到您的解决方案。