[Rd] Using Windows API functions in R

Prof Brian Ripley ripley at stats.ox.ac.uk
Fri Jan 26 10:59:05 CET 2007


On Fri, 26 Jan 2007, ????? ??????? wrote:

> Somehow autofilter doesn't allow this message to be posted,
> will try another time.
>
> -----Original Message-----
> From: Yuri Volchik <volchik2000 at list.ru>
> To: r-devel at r-project.org
> Date: Thu, 25 Jan 2007 22:27:13 +0000
> Subject: Using Windows API functions in R
>
>>
>> Hi to all.
>>
>> In programming one application i have to "press" button to have
>> application started, which i would like to do automatically from R.
>> To do that i want to use library "user32" function "SendInput"
>>
>> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardinput/keyboardinputreference/keyboardinputfunctions/sendinput.asp
>>
>> So far i managed to write the following
>>
>> system(shQuote("C:/Program Files/1.exe"),wait=F)
>> system32 <- file.path(Sys.getenv("windir"),"system32")
>> user32 <- file.path(system32,"user32.dll")
>> dyn.load(user32)
>> .C("SendInput",..)

You cannot make use of WINAPI calls from .C (or otherwise in R): it is set
up for _cdecl calls only.

You will need to write some wrapper C code.

>> And now i'm at loss how to represent the data structure needed for
>> correct call to that function, may be somebody could help me with
>> this?

You cannot create C structures using .C, only a few basic array types. 
See ?".C" .  Since you need wrapper code, you can create the structures 
needed there.

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



More information about the R-devel mailing list