【发布时间】:2014-10-03 18:37:50
【问题描述】:
我正在尝试访问运行 VBA/VB.NET 的计算机上的当前 NUM LOCK 设置: - Windows 7的 - 视觉工作室 2010 - 微软(Office)Excel 2010
代码如下:
Public Const _GlobalDefinitions As String = "GlobalDefinitions"
Public Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Integer, ByVal dwExtraInfo As Integer)
Public Const VK_NUMLOCK As Integer = &H90
Public Const KEYEVENTF_EXTENDEDKEY As Integer = &H1
Public Const KEYEVENTF_KEYUP As Integer = &H2
Public InitialNumLockState As Boolean
Public Sub CheckNumLockState(Optional mWriteback As SSWriteback = Nothing)
Try
If InitialNumLockState Then
If Not My.Computer.Keyboard.NumLock Then
keybd_event(VK_NUMLOCK, &H45, KEYEVENTF_EXTENDEDKEY Or 0, 0)
keybd_event(VK_NUMLOCK, &H45, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0)
End If
End If
Catch ex As Exception
If Not mWriteback Is Nothing Then
AddToErrorLog(mWriteback, _GlobalDefinitions & ":" & System.Reflection.MethodBase.GetCurrentMethod.Name.ToString & "> " & ex.Message & ", " & ex.StackTrace, TraceEventType.Error)
End If
End Try
End Sub
InitialNumLockState 变量在该过程的早期设置如下:
InitialNumLockState = My.Computer.Keyboard.NumLock
对 My.Computer.KeyBoard.NumLock 的初始引用工作正常(我可以在运行时的 Watch 窗口中查询它)并初始化 InitialNumLockState 变量,例如,如果 NUM LOCK 键则为 True开启。
然而,在第二次引用 My.Computer.KeyBoard.NumLock 时,我收到以下错误:
“计算机”在模块“GlbSoft.SWB.SS.My.MyProject”和“GlbSoft.SWB.SS.My.MyProject”中的声明不明确。
请注意,错误消息表明引用不明确,因为它存在于两个同名的模块中。当然,这是不可能的。只涉及一个项目/命名空间 (GSI_SWB_SS/GlbSoft.SWB.SS)。
是否有人对此错误有任何想法或见解,以及可以查看什么来解决它?
【问题讨论】:
标签: vb.net reference declaration ambiguous