Dieter Menne wrote: > > How do I wait for a single character input without terminating "Enter"? >
In case someone needs a solution for Windows, here it is. Compiled Dll from http://www.menne-biomed.de/download/keystate.zip Dieter #dyn.unload("keystate.dll") dyn.load("keystate.dll") AsyncKeyState = function(vkey){ state = 0 .C("AsyncKeyState",as.integer(state),as.integer(vkey))[[1]] } ShiftKeyState = function(){ state = 0 .C("ShiftKeyState",as.integer(state))[[1]] } ControlKeyState = function(){ state = 0 .C("ControlKeyState",as.integer(state))[[1]] } PressedKey = function(){ state = 0 .C("PressedKey",as.integer(state))[[1]] } # while(TRUE){ # Sys.sleep(1) # cat(PressedKey(),"\n") #} // C Program #include <windows.h> #include <R.h> //#include <Rdefines.h> //#include <R_ext/Error.h> #define DLLIMPORT __declspec (dllexport) #define VK_A 0x41 #define VK_Z 0x5A DLLIMPORT void AsyncKeyState(int *state,int* vKey) { state[0] = GetAsyncKeyState(*vKey) <0; } DLLIMPORT void ControlKeyState(int *state) { state[0] = GetAsyncKeyState(VK_CONTROL) <0; } DLLIMPORT void ShiftKeyState(int *state) { state[0] = GetAsyncKeyState(VK_SHIFT) < 0 ; } DLLIMPORT void PressedKey(int *state) { byte keyState[256]; GetKeyboardState(keyState); for (*state=VK_A; (*state) <= VK_Z; (*state)++) if (keyState[*state] & 0x80) return ; *state = 0; } -- View this message in context: http://n4.nabble.com/Single-character-input-without-Enter-tp1564153p1567059.html Sent from the R help mailing list archive at Nabble.com. ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.