gpt4 book ai didi

c# - 设置 WM_KEYDOWN lParam 参数

转载 作者:太空宇宙 更新时间:2023-11-03 20:07:43 24 4
gpt4 key购买 nike

public class sendKeys {
[DllImport("user32.dll")]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll")]
public static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr, lParam);

public static void sendKeystroke(ushort k)
{
const uint WM_KEYDOWN = 0x0100;
const uint WM_SYSCOMMAND = 0x018;
const uint SC_CLOSE = 0x053;

IntPtr WindowToFind = FindWindow(null, "processname");

IntPtr result3 = SendMessage(WindowToFind, WM_KEYDOWN, ((IntPtr)k), (IntPtr)0);
}
}

http://msdn.microsoft.com/en-us/library/windows/desktop/ms646280%28v=vs.85%29.aspx我可以在上面的页面中读到,lParam 参数应该包含我想要发送的所有参数,以位为单位。例如,如果我想为 ScanCode 发送一个“0x2D”值,我应该怎么做?

最佳答案

MSDN 页面告诉您 lParam 的哪些位用于每个参数。您需要做的就是移动一些位来组装 lParam:

uint repeatCount = 0;
uint scanCode = 0x2D;
uint extended = 0;
uint context = 0;
uint previousState = 0;
uint transition = 0;

// combine the parameters above according to the bit
// fields described in the MSDN page for WM_KEYDOWN

uint lParam = repeatCount
| (scanCode << 16)
| (extended << 24)
| (context << 29)
| (previousState << 30)
| (transition << 31);

关于c# - 设置 WM_KEYDOWN lParam 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21994276/

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