c# - C# 将密钥发送到应用程序
问题描述
public void Press(Keys key)
{
WindowsAPI.PostMessage(this.Handle, 260u, new UIntPtr((uint)key), UIntPtr.Zero);
}
public void Release(Keys key)
{
WindowsAPI.PostMessage(this.Handle, 261u, new UIntPtr((uint)key), UIntPtr.Zero);
}
public void gepardkey(Keys key)
{
this.Press(key);
Thread.Sleep(10);
this.Release(key);
}
private void ragnarokgepard_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
bool flag2 = this.currentHP / this.maxHP *100.0<Convert.ToDouble(this.numHPPercent);
if (flag2)
{
this._windowsAPI.gepardkey(Keys.F1);
}
bool flag3 = this.currentSP / this.maxSP *100.0<Convert.ToDouble(this.numSPPercent);
if (flag3)
{
this._windowsAPI.gepardkey(Keys.F2);
}
}
我收到此错误http://prntscr.com/lsel0z有人可以帮助我吗?我已经使用了计时器,private void autopots()
但这个错误仍然弹出
这位仙境传说私人服务器的培训师
解决方案
我不知道您如何定义 PostMessage API,但这里是我的定义:
const UInt32 WM_KEYDOWN = 0x0100;//256
const UInt32 WM_KEYDUP = 0x0101;//257
[DllImport("user32.dll")]
static extern bool PostMessage(IntPtr hWnd, UInt32 Msg, int wParam, int lParam);
以及 keydown 的语法,例如:(key is virtual key)
WindowsAPI.PostMessage(this.Handle, WM_KEYDOWN, (int)key, 0);
您使用 260 作为 Keydown 的值,使用 261 作为 Keyup .....!!??
推荐阅读
- php - Laravel Microsoft Graph,如何使用 Carbon 获取特定事件
- java - 如何将 swagger.json 映射到 Swagger 对象?
- c - ioctl 参数大小限制
- javascript - 在每个中继器 ItemTemplate 中生成条形码
- swift - 更改 TextField 中的清除按钮
- html - HTML 如何正确使用工具提示
- linux - 为什么我们或 || Bash 中的任何条件,例如“iw dev interface_name del || true”?
- python - 尝试做线性线性回归分类器给我“ValueError:预期的二维数组,而不是一维数组
- python - 从组标签中获取字符串文本
- node.js - Docker-compose 使 2 个微服务(前端+后端)通过 http 请求相互通信