I found this on Microsoft's developer site but I don't know how I can implement 
it.

> The SendKeys class has been updated for the .NET Framework 3.0 to enable its 
> use in applications that run on Windows Vista. The enhanced security of 
> Windows Vista (known as User Account Control or UAC) prevents the previous 
> implementation from working as expected.
> 
> The SendKeys class is susceptible to timing issues, which some developers 
> have had to work around. The updated implementation is still susceptible to 
> timing issues, but is slightly faster and may require changes to the 
> workarounds. The SendKeys class tries to use the previous implementation 
> first, and if that fails, uses the new implementation. As a result, the 
> SendKeys class may behave differently on different operating systems. 
> Additionally, when the SendKeys class uses the new implementation, the 
> SendWaitmethod will not wait for messages to be processed when they are sent 
> to another process.
> 
> If your application relies on consistent behavior regardless of the operating 
> system, you can force the SendKeys class to use the new implementation by 
> adding the following application setting to your app.config file.
> 
> <appSettings>
>       <add key="SendKeys" value="SendInput"/>
> </appSettings>
> 
> To force the SendKeys class to use the previous implementation, use the value 
> "JournalHook" instead.

Bill Vlahos
_________________
InfoWallet (http://www.infowallet.com) is about keeping your important life 
information with you, accessible, and secure.

On Jan 7, 2010, at 3:02 AM, runrev260...@m-r-d.de wrote:

> Hi Bill,
> 
> i have done something similar.  You can create a vbs script and let Rev run 
> this.
> 
> I am not very good at VBS, but the following lines show how to insert text 
> into an app.
> 
> ___________________
> Set WshShell = WScript.CreateObject("WScript.Shell") 
> WshShell.Run "winword.exe"
> 'the app is opened. If your app is already running, you do not need this line
> WScript.Sleep 2000          
> 'script stops for 2000 milliseconds to take sure, that the app is running 
> before further proceeding.
> 
> WshShell.AppActivate "Dokument1 - Microsoft Word"    
> 'activates your already running app
> 'between the quotes you have to put the exact name of the app - as it is 
> shown in the title bar of that app
> ' winword also shows the document name in the title bar
> 
> WScript.Sleep 100          
> 'script stops for 100 milliseconds'
> 
> WshShell.SendKeys "This Text should be inserted"   
> 'the text between the quotes is sent to the app
> 
> WScript.Sleep 100          
> WshShell.SendKeys "{enter}"
> 'sends an enter to winword
> WScript.Sleep 100          
> 
> WshShell.SendKeys "This Text should also be inserted"   
> 'the text between the quotes is sent to the app
> 
> ____________________
> 
> Maybe Ken Ray could jump in, as he knows much more about VB and VBS.
> 
> Regards,
> 
> Matthias
> 
> 
> 
> 
> 
> -------- Original Message --------
> Subject: How to invoke SendInput() Windows API. was Re: How do I paste into a 
> different app? (07-Jan-2010 6:42)
> From:    Bill Vlahos <bvla...@mac.com>
> To:      runrev260...@m-r-d.de
> 
>> It looks like Microsoft has deprecated the keybd_event API and suggests 
>> using SendInput() instead.
>> 
>> Below is a sample of what needs to be sent. This is a C++ example. How do I 
>> send this from Rev in Windows? It looks similar to what I do with 
>> AppleScript on the Mac? While the send...as applescript commands are 
>> documented in Rev's dictionary I don't see anything similar for Windows 
>> APIs.
>> 
>> INPUT inp[2];
>>   memset(inp,0,sizeof(INPUT));
>>   inp[0].type = INPUT_KEYBOARD;
>>   inp[0].ki.dwFlags = KEYEVENTF_UNICODE; // to avoid shift, and so on
>>   inp[1] = inp[0];
>>   inp[1].ki.dwFlags |= KEYEVENTF_KEYUP;
>> 
>>   for (LPCTSTR p=str; *p; p++) {
>>      inp[0].ki.wScan = inp[1].ki.wScan = *p;
>>      SendInput(2, inp, sizeof(INPUT));
>>   }
>> 
>> Here are some relevant links:
>> http://msdn.microsoft.com/en-us/magazine/cc163867.aspx
>> http://www.codeguru.com/forum/showthread.php?t=377393
>> http://msdn.microsoft.com/en-us/library/ms646310(VS.85).aspx
>> 
>> On Dec 31, 2009, at 7:27 AM, Bill Vlahos wrote:
>> 
>>> I figured it out and have it working on the Mac with AppleScript. I'm not 
>>> using a paste function but the AppleScript "keystroke" function. It looks 
>>> like the Windows API "keybd_event" can do the same type of thing.
>> 
>> Bill Vlahos
>> _________________
>> InfoWallet (http://www.infowallet.com) helps me remember the important 
>> details of my life.
>> 
>> _______________________________________________
>> use-revolution mailing list
>> use-revolution@lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your 
>> subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-revolution
>> 
>> 
>> 
>> 
>> To: use-revolution@lists.runrev.com
> 
> 
> _______________________________________________
> use-revolution mailing list
> use-revolution@lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription 
> preferences:
> http://lists.runrev.com/mailman/listinfo/use-revolution

_______________________________________________
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to