2012-06-24 6 views
1

Im는 비주얼 베이직으로 응용 프로그램을 작성하여 사용자에게 자신의 PC에 대해 알려줍니다.비주얼 베이직 및 모듈

이 모든 모듈에

Imports Microsoft.VisualBasic.Devices 
Imports System.Management 
Imports System.Net 
Imports System.IO 
Imports System.Windows.Forms 
Imports System.Deployment.Application 

Module ComputerSpecModule 
    Public Enum infotypes 
     ProcesserName 
     VideocardName 
     VideocardMem 
    End Enum 


    Public Function getinfo(ByVal infotype As infotypes) As String 
     Dim info As New ComputerInfo : Dim value, vganame, vgamem, proc As String 
     Dim searcher As New Management.ManagementObjectSearcher(_ 
      "root\CIMV2", "Select * FROM Win32_VideoController") 
     Dim searcher1 As New Management.ManagementObjectSearcher(_ 
      "Select * FROM Win32_Processor") 
     If infotype = infotypes.ProcesserName Then 
      For Each queryObject As ManagementObject In searcher1.Get 
       proc = queryObject.GetPropertyValue("Name").ToString 
      Next 
      value = proc 
     ElseIf infotype = infotypes.VideocardName Then 
      For Each queryObject As ManagementObject In searcher.Get 
       vganame = queryObject.GetPropertyValue("Name").ToString 
      Next 
      value = vganame 
     ElseIf infotype = infotypes.VideocardMem Then 
      For Each queryObject As ManagementObject In searcher.Get 
       vgamem = queryObject.GetPropertyValue("AdapterRAM").ToString 
      Next 
      value = Math.Round((((CDbl(Convert.ToDouble(Val(vgamem)))/1024))/1024), 2) & " MB" 
     End If 
     Return value 

    End Function 

    Public oAddr As System.Net.IPAddress 'gets the ipv4 add 
    Public sAddr As String 


    Public EmailStarterMessage As String = "This message was sent by SpecMee. SpecMee is a light weight application designed to allow the users to find out the specifications of their machines. Please download this application free at http://www.wilson18.com/projects/SpecMee/" + _ 
    Environment.NewLine + _ 
    "" + _ 
    Environment.NewLine + _ 
    "" + _ 
    Environment.NewLine + _ 
    "" 


    'PC SPEC CONTENT 
    Public ComputerName As String = (My.Computer.Name.ToString) 
    Public myOS As String = (My.Computer.Info.OSFullName) 
    Public Processor As String = (getinfo(infotypes.ProcesserName)) 
    Public HDD As String = (Format((My.Computer.FileSystem.Drives.Item(0).TotalSize.ToString/1024)/1024/1024, "###,###,##0 GB")) 
    Public RAM As String = (Format((My.Computer.Info.TotalPhysicalMemory/1024)/1024/1024, "###,###,##0 GB")) 
    Public VideoCard As String = (getinfo(infotypes.VideocardName)) 
    Public VideoCardMemory As String = (getinfo(infotypes.VideocardMem)) 
    Public Function Resolution() As String 
     Dim intx As Integer = Screen.PrimaryScreen.Bounds.Width 
     Dim inty As Integer = Screen.PrimaryScreen.Bounds.Height 
     Return intx & " x " & inty 
    End Function 
    Public Function InternalIPAddress() 
     With System.Net.Dns.GetHostByName(System.Net.Dns.GetHostName()) 
      oAddr = New System.Net.IPAddress(.AddressList(0).Address) 
      InternalIPAddress = oAddr.ToString 
     End With 
    End Function 
    Public Function ExternalIPAddress() As String 
     Dim uri_val As New Uri("http://www.wilson18.com/projects/SpecMee/curip.php") 
     Dim request As HttpWebRequest = HttpWebRequest.Create(uri_val) 

     request.Method = WebRequestMethods.Http.Get 
     Dim response As HttpWebResponse = request.GetResponse() 
     Dim reader As New StreamReader(response.GetResponseStream()) 
     Dim myip As String = reader.ReadToEnd() 
     response.Close() 
     Return myip 
    End Function 



    Public EmailContent As String = ("Computer Name: " & ComputerName & Environment.NewLine & "Operating System: " & myOS & Environment.NewLine & "Processor: " & Processor & Environment.NewLine & "Hard Drive Size : " & HDD & Environment.NewLine & "RAM: " & RAM & Environment.NewLine & "Graphics Card: " & VideoCard & Environment.NewLine & "Graphics Onboard Memory: " & VideoCardMemory & Environment.NewLine & "Resolution: " & Resolution() & Environment.NewLine & "Internal IP Address: " & InternalIPAddress() & Environment.NewLine & "External IP Address: " & ExternalIPAddress() & Environment.NewLine) 


End Module 

오전 데 문제는 사용자의 그래픽 카드가 온보드 메모리 어떤이없는 것처럼 모듈의 것들 중 하나는 실패하면 그때는 실패 할 것입니다 .This이

... aswell 실패 할 다른 모든 것들의 원인이되는 나는 어떤 바보 명백한 오류를 만든 어떤 제안을 사전에

감사 환영 경우에 저를 용서하십시오 수 있습니다을 가질수 있도록 Visual Basic에서 아주 새로운 오전.

답변

3

장소에 실패 할 수 있습니다 부품 Try-Catch

Public VideoCardMemory As String = getinfo(infotypes.VideocardMem) 

Public Function getinfo(ByVal infotype As infotypes) As String   
    Try 
     ... 
     value = ... 
     ... 
    Catch 
     value = "Cannot be accessed!" 
    End Try 
    Return value 
End Function 
+0

할 그러나 이것은 다음 trycatch을 다른 전체를 죽이는 중지 어쨌든 거기 것인가 -statement? – user1244772

+0

'Try-Catch'의 문제점은 무엇입니까? 'Try-Catch'는 실패한 호출이 발생한 정확한 사이트에서 예외를 catch하여 코드를 100 % 제어 할 수있게합니다. 예외가 발생하면 코드 실행이 원활하게 진행되고 아무런 문제가없는 것처럼 다음 시스템 정보를 수집 할 수 있습니다. –

+0

여기 trycatch to try해야 할 것들 중 하나가 Public VideoCardMemory As String = (getinfo (infotypes.VideocardMem))이지만 함수가 없으므로 위선적입니다. 이 문제를 해결할 수있는 방법이 있습니까? – user1244772

관련 문제