gpt4 book ai didi

c# - 将击键组合发送到背景窗口

转载 作者:太空狗 更新时间:2023-10-29 20:05:28 38 4
gpt4 key购买 nike

经过对 Stackoverflow 和谷歌的大量研究,似乎很难使用它的句柄将击键组合发送到后台窗口。比如我要发送CTRL+F,好像sendmessage不行,sendenput也不行,因为窗口需要焦点。

所以我最后的想法是关于 Hook :无论如何都可以使用这种方式发送组合?

最佳答案

好的,我找到了解决方法,但它并不适用于所有应用程序。否则,它可以与 PuTTY 一​​起使用,这是我想通过组合键控制的程序。即使应用程序未获得焦点,它也能正常工作。所以我现在完成了!

class SendMessage
{
[DllImport("user32.dll")]
public static extern IntPtr PostMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);

public static void sendKeystroke()
{
const uint WM_KEYDOWN = 0x100;
const uint WM_KEYUP = 0x0101;

IntPtr hWnd;
string processName = "putty";
Process[] processList = Process.GetProcesses();

foreach (Process P in processList)
{
if (P.ProcessName.Equals(processName))
{
IntPtr edit = P.MainWindowHandle;
PostMessage(edit, WM_KEYDOWN, (IntPtr)(Keys.Control), IntPtr.Zero);
PostMessage(edit, WM_KEYDOWN, (IntPtr)(Keys.A), IntPtr.Zero);
PostMessage(edit, WM_KEYUP, (IntPtr)(Keys.Control), IntPtr.Zero);
}
}
}

}

关于c# - 将击键组合发送到背景窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12805345/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com