From murdoch@dunc@n @end|ng |rom gm@||@com  Thu May  5 18:17:53 2022
From: murdoch@dunc@n @end|ng |rom gm@||@com (Duncan Murdoch)
Date: Thu, 5 May 2022 12:17:53 -0400
Subject: [Rd] Rgui.exe 4.2.0 does not receive characters via the Windows
 API's PostMessage function
In-Reply-To: <em26d64aef-2f66-415f-be9d-ae71a91c1d56@dell>
References: <em26d64aef-2f66-415f-be9d-ae71a91c1d56@dell>
Message-ID: <8e41c7bc-466c-ca00-6141-66520f8818b8@gmail.com>

On 05/05/2022 11:17 a.m., jcfaria wrote:
> Hello,
> 
> Rgui.exe 4.2.0 does not receive characters via the Windows API's
> PostMessage function.
> 
> The Tinn-R project sends messages to Rgui.exe (SDI mode) via the Windows
> API's PostMessage function.
> A simplification of the code (in object Pascal) can be seen below.
> 
> procedure TfMain.btnPasteClick(Sender: TObject);
> var
>     i: integer;
>     sTmp: WideString;
>     hBN: HWND;
> 
> begin
>     hBN:= FindWindowA(nil,
>                       'R Console (64-bit)');
> 
>     sTmp:= 'sd';
> 
>     for i:= 1 to Length(sTmp) do begin
>       PostMessage(hBN,
>                   WM_CHAR,
>                   Ord(sTmp[i]),
>                   0);
>     end;
> 
>     PostMessage(hBN,
>                 WM_KEYDOWN,
>                 VK_RETURN, 0);
> end;
> 
> This code has always worked fine for all versions of Rgui.exe with the
> exception of the last one released, ie 4.2.0.
> 
> We've been trying to get around the problem on the Object Pascal side,
> but without success so far.
> 
> Does anyone connected to the compilation of Rqui.exe know what the
> problem is?

It could be that the new build enforces Windows security more 
stringently.  More details are described in the answer to this question: 
  https://stackoverflow.com/a/40139498/2554330, but at a minimum you 
should be checking the return value from PostMessage.

Duncan Murdoch

> 
> Best,
> ///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\
> Jose Claudio Faria
> UESC/DCET/Brasil
> joseclaudio.faria at gmail.com
> Telefones:
> 55(73)3680.5545 - UESC
> 55(73)99966.9100 - VIVO
> ///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\
> If you have software to deal with statistics, you have arms,
> if you have good software, you have arms and legs,
> if you have software like R, you have arms, legs and wings...
> the height of your flight depends only on you.
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



[Rd] Rgui.exe 4.2.0 does not receive characters via the Windows API's PostMessage function
Duncan Murdoch