2013-07-25 50 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