Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#对另一个应用程序的密钥访问_C#_Window_Sendkeys - Fatal编程技术网

c#对另一个应用程序的密钥访问

c#对另一个应用程序的密钥访问,c#,window,sendkeys,C#,Window,Sendkeys,我想将击键发送到另一个应用程序。例如:我打开了一个浏览器,我想在不以记事本窗口为目标的情况下向打开的记事本应用程序中写入击键。我只想让浏览器窗口一直处于活动状态 有可能吗?如果您使用Windows API,您可以这样做,但是SendInput是唯一可以保证正确执行的,并且只能在聚焦窗口上执行。对于其他窗口,您可以使用SendMessage,使用WM\u KEYUP、WM\u KEYDOWN和WM\u CHAR,但这非常不可靠。应用程序这样做通常也是不受欢迎的行为。如果您真的想从web浏览器向正在

我想将击键发送到另一个应用程序。例如:我打开了一个浏览器,我想在不以记事本窗口为目标的情况下向打开的记事本应用程序中写入击键。我只想让浏览器窗口一直处于活动状态


有可能吗?

如果您使用Windows API,您可以这样做,但是
SendInput
是唯一可以保证正确执行的,并且只能在聚焦窗口上执行。对于其他窗口,您可以使用
SendMessage
,使用
WM\u KEYUP
WM\u KEYDOWN
WM\u CHAR
,但这非常不可靠。应用程序这样做通常也是不受欢迎的行为。

如果您真的想从web浏览器向正在运行的Windows应用程序发送击键,那么这应该是不可能的


原因是web浏览器已经(或应该)从操作系统和其他运行的应用程序中进行沙盒处理,以防止不受欢迎的人通过internet恶意干扰您的计算机。

如果可能的话,听起来像是一个安全漏洞。您可以写入cmd窗口并重新格式化驱动器,而不是写入记事本。