Могу ли я отправить нажатия клавиш через SSH на мой Raspberry, чтобы выйти из игрового эмулятора? - PullRequest
0 голосов
/ 12 ноября 2018

Итак, проблема в том, что я пытаюсь выйти из эмулятора NES через SSH, он говорит, что мне нужно нажать ESC, чтобы сделать это, и я хочу отправить имитированное нажатие клавиши, чтобы оно заработало.Канал SSH работает, потому что я использую его для запуска скриптов.Я работаю в AndroidStudio

Вот код

public class MainActivity extends AppCompatActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final Button button = findViewById(R.id.button);
        final Button button2 = findViewById(R.id.button2);




        button.setOnClickListener(new View.OnClickListener() {
            @Override

            //button do uruchomienia roma
            public void onClick(View v) {

                Thread thread = new Thread(new Runnable() {

                    public void run() {
                        try {

                            executeRemoteCommand("pi", "123","192.168.0.115", 22,"sudo python3 UruchomienieRoma.py");

                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }



       });
thread.start();

    }
    });


        button2.setOnClickListener(new View.OnClickListener() {
            @Override

            //button do uruchomienia roma
            public void onClick(View v) {

                Thread thread2 = new Thread(new Runnable() {

                    public void run() {
                        try {

                            executeRemoteCommand("pi", "123","192.168.0.115", 22,"sudo python3 ESC.py " );

                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }



                });
                thread2.start();

            }
        });




    }

    public  String executeRemoteCommand(String username,String password,String hostname,int port ,String command)
            throws Exception {
        JSch jsch = new JSch();
        Session session = jsch.getSession(username, hostname, port);
        session.setPassword(password);

        // Avoid asking for key confirmation
        Properties prop = new Properties();
        prop.put("StrictHostKeyChecking", "no");
        session.setConfig(prop);

        session.connect();

        // SSH Channel
        ChannelExec channelssh = (ChannelExec)
                session.openChannel("exec");
        ByteArrayOutputStream baos = new ByteArrayOutputStream();

        channelssh.setOutputStream(baos);

        // Execute command
        channelssh.setCommand(command);
        channelssh.connect();
        channelssh.disconnect();

         return baos.toString();
    }
}

Я пытался сделать скрипты на python для имитации ESC-прессы (в pyautogui и некоторых других), но эмулятор не отвечал, оболочкасделал

Спасибо за ответ

РЕДАКТИРОВАТЬ Все еще ничего, но, возможно, изменение типа канала является ответом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...