2013-07-25 40 views
0

我正在尝试做一个虚拟的点击,为了做到这一点,您需要给keybd_event()一个字节值以告诉它该做什么。所以我有这个函数需要传递一个字符串(它只是一个来自A-Z的字母)并将其转换为一个字节。但是,当我运行程序我得到这个错误Conversion from type 'Byte()' to type 'Byte' is not valid卡住字节转换

下面是函数:

Private Function getByteValue(ByVal letter As String) 
    Dim byt = System.Text.Encoding.Unicode.GetBytes(letter) 
    Return byt 
End Function 

我不知道为什么错误发生,而且我不知道它甚至返回一个字节值,而是字母转换为多少个字节,并且我需要一个字节bvk值?

+1

您应该声明函数返回的数据类型以及您的byt变量的数据类型。我建议你总是使用OPTION EXPLICT来避免难以发现的问题。有些人也喜欢OPTION STRICT,如果你像在系统级别上玩游戏一样,可能是一个好主意。无论如何,你为什么在这个级别? – rheitzman

回答

3

Encoding.GetBytes()返回一个数组字节,而不是单个字节。错误消息告诉你,你正试图将一个字节数组转换为一个字节。

您将不得不遍历数组中的元素并通过keybd_event()处理每个元素。

1

正确的方法类似于你已经实现的看起来像这样。

Private Function getByteValue(ByVal letter As String) As Byte() 
    Dim byt As Byte() = {} 
    byt = System.Text.Encoding.Unicode.GetBytes(letter) 
    Return byt 
End Function