2014-10-03 34 views
1

聲明之間不明確我試圖訪問當前的NUM LOCK設置計算機運行VBA/VB.NET: - Windows 7的 - Visual Studio 2010中 - 微軟(辦公室)的Excel 2010如何解決'計算機'之間的模塊GlbSoft.SWB.SS.My.MyProject'和'GlbSoft.SWB.SS.My.MyProject'

下面是代碼:

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工作正常(我可以在運行時觀看窗口內查詢它),如果Num Lock鍵爲ON初始化InitialNumLockState變量,例如,真。

在第二參考My.Computer.KeyBoard.NumLock,但是,我收到以下錯誤:

「計算機」是在模塊「GlbSoft.SWB.SS.My聲明之間的曖昧.MyProject'和'GlbSoft.SWB.SS.My.MyProject'。

請注意,該錯誤消息表示該引用不明確,因爲它存在於兩個同名的模塊中。當然,這是不可能的。只涉及一個項目/名稱空間(GSI_SWB_SS/GlbSoft.SWB.SS)。

有沒有人有任何想法或對這個錯誤的見解,以及爲了解決它可以看到什麼?

回答

1

我在這個時候在我的應用程序中遇到了同樣的問題。 我認爲VS在每個.dll的每個My中創建了Computer的實例。 我繞過了這個問題。

在我的申請,我在那裏我已經添加

Namespace Infrastructure.MYLOCAL 
    <HideModuleName> _ 
    Public Module MYLOCAL 
    Public MYComputer = My.Computer 
    End Module 
End Namespace 

基礎設施層和我的整個應用程序使用的基礎設施層,它的工作原理。我使用MYComputer而不是my.Computer