Skip to content

Opening Another Application in R Then Hangs

8 messages · Jeff Newmiller, David Winsemius, Rasmus Liland +2 more

#
Hi R Helpers,

I am trying to open another application from within R and then work with it.

I can get the application to open, but R then hangs at that point (spinning blue circle in the middle of the screen) and my subsequent programming does not execute.

Does anybody know how to get R to unlock?

I am using Windows 10 and R4.0.

The example below freezes R on my machine.

Any guidance appreciated.  Thanks.
--John Sparks

setwd("C:/Users/JSparks/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Accessories")
system2("Notepad",invisible=FALSE)
#
Exit the application you started?
On July 5, 2020 3:06:52 PM PDT, "Sparks, John" <jspark4 at uic.edu> wrote:

  
    
#
Hi Jeff,

Greatly appreciate your reply, but I don't quite understand it.

Perhaps I should give a little more detail.

For this example, I want to open notepad, then go to notepad and type something in.  So the program

library(KeyboardSimulator)
setwd("C:/Users/JSparks/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Accessories")
system2("Notepad",invisible=FALSE)
mouse.move(2423,236)
mouse.click()
keybd.type_string("Hello world!")

would do this, but it does not advance passed the system2 command.

Best wishes,
--JJS
#
This list is not the recommended location for support of that Windows 
only package. The URL in the DESCRIPTION file has this to advise:

++++++++++++++++++


      This package doesn't work on my computer! How can I make it work?

Open aGitHub <https://github.com/ChiHangChen/KeyboardSimulator>issue and 
let us know what version of Windows you are using and what keyboard and 
mouse hardware you have connected.

++++++++++++++++++


-- David.
On 7/5/20 3:16 PM, Sparks, John wrote:

  
  
#
On 2020-07-05 22:16 +0000, Sparks, John wrote:
Dear John,

Perhaps start Notepad in the background is 
what you mean?  Something like 

	system2("START /B Notepad", invisible=FALSE)

Found it at [1].  I'm not on Windows ever, so 
I can not test it.

What are you trying to achieve here?

Where would the things you type into Notepad 
end up?  Will R read it.  It might be more 
useful to take user input by calling 

	readline(prompt="Enter something here at least: ")

Best,
Rasmus

[1] https://superuser.com/a/591084

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20200706/7414ad74/attachment.sig>
#
If you open an app using the default settings for system2, R normally expects to let you know what the program's return value was, so if it was interactive you would need to terminate the program so there would be a result for system2 to return with. For what you actually appear to be doing you probably want to read ?system2.
On July 5, 2020 3:16:12 PM PDT, "Sparks, John" <jspark4 at uic.edu> wrote:

  
    
#
shell ("Notepad", wait=FALSE)
On Mon, Jul 6, 2020 at 10:07 AM Sparks, John <jspark4 at uic.edu> wrote:
#
For posterity, Abby's suggestion is spot on.

The small program below demonstrates the functionality.  May need to change numbers in mouse.move depending on where your copy of Notepad opens up.  You can find the position of your mouse on the screen using mouse.get_cursor()

Thanks to all, but especially to Abby.

--JJS


library(KeyboardSimulator)
setwd("C:/Users/JSparks/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Accessories")
shell ("Notepad", wait=FALSE)
Sys.sleep(3)
mouse.move(362,300)
mouse.click()
keybd.type_string("Hello world!")