我有一个低级键盘钩子,目前允许我从任何应用程序(包括游戏)内部控制媒体播放器。
它通过查看捕获的特定击键来工作。
我想扩展它来寻找键的组合。我可以硬编码一些逻辑,但我觉得必须有一种更合乎逻辑的方式。
真的,我正在寻找类似移位寄存器的东西......
例如,当我输入“BlahPlay”时,我想要一个可以像这样使用的结构......
[_,_,_,_]
[_,_,_,B]
[_,_,B,l]
[_,B,l,a]
[B,l,a,h]
[l,a,h,P]
[a,h,P,l]
[h,P,l,a]
[P,l,a,y] <-- detect "Play"
缺少循环和移动数组中的项目,这样做的正确方法是什么?
我现在能想到的最好的就是……
Private Register(4) As Char
Private Position = 0
Sub Add(Character as Char)
Register(Position) = Character
Position = (Position + 1) Mod Register.Length
End Sub
Function Get() as String
Dim Ret As New StringBuilder
For i = Position To Position + Register.Length
Ret.Append(Register(i Mod Register.Length)
Next
Return Ret.ToString
End Function