winform模拟键盘操作SendKeys.Send()与SendKeys.SendWait()

       在微软的帮助文档中指出SendKeys.Send()是向活动应用程序发送击键。SendKeys.SendWait()是向活动应用程序发送给定的键,然后等待消息被处理。但是在使用多线程的时候,在副线程中使用SendKeys.Send()会抛出“SendKeys 无法在此应用程序内运行,原因是此应用程序不处理 Windows 消息。请将此应用程序更改为可处理消息,或者使用 SendKeys.SendWait 方法。”异常,最后使用SendKeys.SendWait 方法就不在抛出异常,程序正常运行。

       另:在副线程中使用Clipboard.Clear()会抛出“在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。”异常,在新建线程是要将新线程设置为STA模式,,方法如下:

          thread.SetApartmentState(ApartmentState.STA);

      或 thread.ApartmentState=ApartmentState.STA //在VS2008中说改用法已经弃用 不推荐使用

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值