Can i send Keyboard strokes through SSH to my Raspberry to quit a game emulator?












2















So , the problem is im trying to exit NES emulator through SSH ,it says i need to click ESC to do so , and i want to send a simulated key press to make it work . SSH channel is working because im using it to start scripts. Im working in AndroidStudio



Here is the code



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();
}
}


I've tried to make scripts in python to simulate ESC press (in pyautogui and some others ) but emulator did not respond , shell did



Thanks for response



EDIT
Still nothing , but maybe changing channel type is the answer










share|improve this question





























    2















    So , the problem is im trying to exit NES emulator through SSH ,it says i need to click ESC to do so , and i want to send a simulated key press to make it work . SSH channel is working because im using it to start scripts. Im working in AndroidStudio



    Here is the code



    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();
    }
    }


    I've tried to make scripts in python to simulate ESC press (in pyautogui and some others ) but emulator did not respond , shell did



    Thanks for response



    EDIT
    Still nothing , but maybe changing channel type is the answer










    share|improve this question



























      2












      2








      2








      So , the problem is im trying to exit NES emulator through SSH ,it says i need to click ESC to do so , and i want to send a simulated key press to make it work . SSH channel is working because im using it to start scripts. Im working in AndroidStudio



      Here is the code



      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();
      }
      }


      I've tried to make scripts in python to simulate ESC press (in pyautogui and some others ) but emulator did not respond , shell did



      Thanks for response



      EDIT
      Still nothing , but maybe changing channel type is the answer










      share|improve this question
















      So , the problem is im trying to exit NES emulator through SSH ,it says i need to click ESC to do so , and i want to send a simulated key press to make it work . SSH channel is working because im using it to start scripts. Im working in AndroidStudio



      Here is the code



      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();
      }
      }


      I've tried to make scripts in python to simulate ESC press (in pyautogui and some others ) but emulator did not respond , shell did



      Thanks for response



      EDIT
      Still nothing , but maybe changing channel type is the answer







      java ssh raspberry-pi






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 13 '18 at 18:44







      buhh1231

















      asked Nov 12 '18 at 16:19









      buhh1231buhh1231

      163




      163
























          0






          active

          oldest

          votes











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53266169%2fcan-i-send-keyboard-strokes-through-ssh-to-my-raspberry-to-quit-a-game-emulator%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes
















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53266169%2fcan-i-send-keyboard-strokes-through-ssh-to-my-raspberry-to-quit-a-game-emulator%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Full-time equivalent

          Bicuculline

          さくらももこ