【发布时间】:2018-07-27 22:03:12
【问题描述】:
我有一个包含所有字母及其 DirectInput 键码的二维数组:
string[,] DXKeyCodes = new string[,]
{
{"a","0x1E"},
{"b","0x30"},
...
};
然后我有一个函数从数组中返回基于字母的十六进制键代码,如果我发送'a'它返回'0x1E'。
然后,这个键码会作为按键发送到外部程序,该函数需要将键码指定为短键,但我的数组包含字符串。
如何将这种字符串转换为短字符串?
例如,这是可行的,但当然,总是发送相同的密钥代码:
Send_Key(0x24, 0x0008);
我需要这样的东西才能工作,这样我就可以发送任何给定的密钥代码:
Send_Key(keycode, 0x0008);
我尝试了以下方法,但它也不起作用,只是让我的应用程序崩溃。
Send_Key(Convert.ToInt16(keycode), 0x0008);
我真的不想去这样的地方
if (keycode == "a")
{
Send_Key(0x1E, 0x0008);
}
else if (keycode == "b")
{
Send_Key(0x30, 0x0008);
}
...
我确定有更好的方法,但我找不到:(
感谢您的帮助。
【问题讨论】:
-
显而易见的问题是:为什么首先将十六进制值存储为字符串而不是短裤?另一个问题是:你为什么不用字典?
-
听起来像
Dictionary<string, short> -
哦...只是因为我不知道字典是什么并且我可以使用它:) 听起来这是一个非常愚蠢的问题,很容易解决...我会立即尝试...谢谢大家
-
谁带来了石头?也不要抱怨被否决,拜托!有人可能有充分的理由。例如,在几个地方阅读您的问题非常容易......
-
嗯,避免被否决的一种方法是学习语言。有大量免费资源可以教你如何做这些事情。相反,您在这里提出非常基本的问题,您的期望是我们有耐心和理解。我们的理解是,您不必费心花时间阅读,而是采取简单的方法戳它,如果您无法弄清楚,您可以问陌生人。
标签: c# string hex short directinput