1
我正在學習VB.NET中的鍵盤鉤子,並且需要錯誤幫助。起初它告訴我我必須改變(不是(KeyDown)沒有)& KeyUp到RaiseEvent,因爲它們是我已經完成的事件。但現在它告訴我一個''''表達是期待的,我不知道這意味着什麼。我已經使用VB.NET維基和代碼片段做到了這一點,我爲自己感到非常自豪。我現在不想讓這個失敗。請幫忙!在最底部有一個錯誤的圖像。VB.NET RaiseEvent詢問表達式
Public Event KeyDown As KeyboardHookCallback
Public Event KeyUp As KeyboardHookCallback
Private Function HookFunc(ByVal nCode As Integer, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr
If (nCode >= 0) Then
Dim iwParam As Integer = wParam.ToInt32
If ((iwParam = WM_KEYDOWN) _
OrElse (iwParam = WM_SYSKEYDOWN)) Then
If (Not RaiseEvent KeyDown Is Nothing) Then
RaiseEvent KeyDown(CType(Marshal.ReadInt32(lParam), VKeys))
End If
End If
If ((iwParam = WM_KEYUP) _
OrElse (iwParam = WM_SYSKEYUP)) Then
If (Not RaiseEvent KeyUp Is Nothing) Then
RaiseEvent KeyUp(CType(Marshal.ReadInt32(lParam), VKeys))
End If
End If
End If
Return CallNextHookEx(hookID, nCode, wParam, lParam)
End Function
1)表達式是一個有值的東西,例如5或'x + y'。 2)我*懷疑你正在試圖查明是否有與KeyUp事件關聯的事件處理程序。我建議你在嘗試添加這樣的額外功能之前讓你的代碼工作。 –
它看起來像試圖翻譯C#代碼。刪除If語句,它既不正確也不必要。只需簡單的RaiseEvent即可完成工作。 –
Microsoft [Visual Basic編碼約定](https://docs.microsoft.com/zh-cn/dotnet/visual-basic/programming-guide/program-structure/coding-conventions)文檔特別聲明「不驗證是否在調用RaiseEvent方法之前,事件爲Nothing(null).RaiseEvent在引發事件之前檢查Nothing。「 –