Search code examples
c#.netwindowswinformssendkeys

SendKeys.send is blocked


I have C# application that uses Sendkeys.send to send text to other applications. When executed on windows 7 after some time the Sendkeys stop responding and doesn't send any text. It never happens on windows XP. I suspected the anti virus but it happen also when I'm running with no anti virus. Any ideas what can cause it? Thank you for your help.


Solution

  • What version of the .NET Framework are you compiling against? If you're still using a version prior to 2.0, you are most likely experiencing compatibility problems in Windows 7 as a result of UAC's enhanced security model.

    The SendKeys.Send method was updated in version 3.0 of the Framework to work properly with Windows Vista and newer. See the documentation:

    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.

    You need to upgrade; version 3.5 is already included with Windows 7.

    Otherwise, P/Invoking the SendMessage function exposed by the Windows API is an option if you need to send data to other applications. Check pinvoke.net for the declaration you'll need to call this in C#.