ID do artigo: 213267 - Última revisão: quarta-feira, 22 de agosto de 2007 - Revisão: 3.4

COMO: Obter informações de status do Windows do Windows API no Excel 2000

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Recolher tudo

Sumário

No Microsoft Excel você pode obter informações de status do sistema através de programação e exibi-lo em uma planilha. Este artigo passo a passo fornece um exemplo Microsoft Visual Basic para aplicativos sub procedimento que exibe as informações a seguir, usando funções da API do Windows:
  • O número de versão do Windows com a função de API de GetVersionEx.
  • O tipo de processador de CPU com a função de API GetSystemInfo.
  • A quantidade de memória livre com a função de API GlobalMemoryStatus.

Código de exemplo para obter informações de status do Windows

Microsoft fornece exemplos de programação apenas para ilustração, sem garantia expressa ou implícita, incluindo, mas não se limitando às garantias implícitas de comercialização e/ou adequação a uma finalidade específica. Este artigo presume que você esteja familiarizado com a linguagem de programação demonstrada e as ferramentas usadas para criar e depurar procedimentos. Profissionais de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas eles não modificarão esses exemplos para fornecer funcionalidades adicionais ou construir procedimentos para atender às suas necessidades específicas.
Se você não tenha muita experiência de programação, talvez queira em contato com um Microsoft Certified Partner ou Microsoft Advisory Services. Para obter mais informações, visite da Microsoft:

Microsoft Certified Partners - https://partner.microsoft.com/global/30000104 (https://partner.microsoft.com/global/30000104)

Comunicado de Microsoft Services - http://support.microsoft.com/gp/advisoryservice (http://support.microsoft.com/gp/advisoryservice)

Para obter mais informações sobre as opções de suporte estão disponíveis e sobre como entrar em contato com a Microsoft, visite o seguinte site: http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS (http://support.microsoft.com/default.aspx?scid=fh;en-us;cntactms) Para obter informações de status do Windows usando chamadas de API do Windows, execute estas etapas:
  1. Iniciar o Microsoft Excel e crie uma nova pasta de trabalho.
  2. No menu Ferramentas , aponte para macro e em seguida, clique em Editor do Visual Basic (ou pressione ALT+F11).
  3. No menu Inserir , clique em módulo .
  4. Na folha de módulo, digite o seguinte código:
    Option Explicit
    
    Type SYSTEM_INFO
        dwOemID As Long
        dwPageSize As Long
        lpMinimumApplicationAddress As Long
        lpMaximumApplicationAddress As Long
        dwActiveProcessorMask As Long
        dwNumberOrfProcessors As Long
        dwProcessorType As Long
        dwAllocationGranularity As Long
        dwReserved As Long
    End Type
    
    Type OSVERSIONINFO
        dwOSVersionInfoSize As Long
        dwMajorVersion As Long
        dwMinorVersion As Long
        dwBuildNumber As Long
        dwPlatformId As Long
        szCSDVersion As String * 128
    End Type
    
    Type MEMORYSTATUS
        dwLength As Long
        dwMemoryLoad As Long
        dwTotalPhys As Long
        dwAvailPhys As Long
        dwTotalPageFile As Long
        dwAvailPageFile As Long
        dwTotalVirtual As Long
        dwAvailVirtual As Long
    End Type
    
    'The following three Declare lines must be each entered on a single
    'line.
    
    Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" _
                 (LpVersionInformation As OSVERSIONINFO) As Long
    Declare Sub GlobalMemoryStatus Lib "kernel32" (lpBuffer As _
                MEMORYSTATUS)
    Declare Sub GetSystemInfo Lib "kernel32" (lpSystemInfo As _
                  SYSTEM_INFO)
    
    Public Const PROCESSOR_INTEL_386 = 386
    Public Const PROCESSOR_INTEL_486 = 486
    Public Const PROCESSOR_INTEL_PENTIUM = 586
    Public Const PROCESSOR_MIPS_R4000 = 4000
    Public Const PROCESSOR_ALPHA_21064 = 21064
    
    Sub SystemInformation()
    Dim msg As String         ' Status information.
    Dim NewLine As String     ' New-line.
    Dim ret As Integer        ' OS Information
    Dim ver_major As Integer  ' OS Version
    Dim ver_minor As Integer  ' Minor Os Version
    Dim Build As Long         ' OS Build
    
          NewLine = Chr(13) + Chr(10)  ' New-line.
          ' Get operating system and version.
          Dim verinfo As OSVERSIONINFO
          verinfo.dwOSVersionInfoSize = Len(verinfo)
          ret = GetVersionEx(verinfo)
          If ret = 0 Then
              MsgBox "Error Getting Version Information"
              End
          End If
    
          Select Case verinfo.dwPlatformId
              Case 0
                  msg = msg + "Windows 32s "
              Case 1
                  msg = msg + "Windows 95/98 "
              Case 2
                  msg = msg + "Windows NT/2000 "
          End Select
    
          ver_major = verinfo.dwMajorVersion
          ver_minor = verinfo.dwMinorVersion
          Build = verinfo.dwBuildNumber
          msg = msg & ver_major & "." & ver_minor
          msg = msg & " (Build " & Build & ")" & NewLine & NewLine
    
          ' Get CPU type and operating mode.
          Dim sysinfo As SYSTEM_INFO
          GetSystemInfo sysinfo
          msg = msg + "CPU: "
          Select Case sysinfo.dwProcessorType
              Case PROCESSOR_INTEL_386
                  msg = msg + "Intel 386" + NewLine
              Case PROCESSOR_INTEL_486
                  msg = msg + "Intel 486" + NewLine
              Case PROCESSOR_INTEL_PENTIUM
                  msg = msg + "Intel Pentium" + NewLine
              Case PROCESSOR_MIPS_R4000
                  msg = msg + "MIPS R4000" + NewLine
              Case PROCESSOR_ALPHA_21064
                  msg = msg + "DEC Alpha 21064" + NewLine
              Case Else
                  msg = msg + "(unknown)" + NewLine
          End Select
    
          msg = msg + NewLine
    
          ' Get free memory.
          Dim memsts As MEMORYSTATUS
          Dim memory As Long
          GlobalMemoryStatus memsts
          memory = memsts.dwTotalPhys
          msg = msg + "Total Physical Memory: "
          msg = msg + Format(memory \ 1024, "###,###,###") + "K" + NewLine
          memory = memsts.dwAvailPhys
          msg = msg + "Available Physical Memory: "
          msg = msg + Format(memory \ 1024, "###,###,###") + "K" + NewLine
          memory = memsts.dwTotalVirtual
          msg = msg + "Total Virtual Memory: "
          msg = msg + Format(memory \ 1024, "###,###,###") + "K" + NewLine
          memory = memsts.dwAvailVirtual
          msg = msg + "Available Virtual Memory: "
          msg = msg + Format(memory \ 1024, "###,###,###") + "K" + NewLine
    
          MsgBox msg, vbOKOnly, "System Info"
    End Sub
    					
  5. No menu Ferramentas , aponte para macro e, em seguida, clique em macros .
  6. Clique em SystemInformation e, em seguida, clique em Executar .
A macro retorna uma caixa de mensagem que mostra informações do sistema.

Referências

Para obter mais informações sobre como usar o código de exemplo neste artigo, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
212536  (http://support.microsoft.com/kb/212536/EN-US/ ) OFF2000: Como executar o código de exemplo de artigos da Knowledge Base
Para obter informações adicionais sobre como usar APIs do Windows no Visual Basic, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
161151  (http://support.microsoft.com/kb/161151/EN-US/ ) COMO: Obter informações de status do Windows por meio de chamadas de API
189249  (http://support.microsoft.com/kb/189249/EN-US/ ) COMO: Determinar qual versão do Windows de 32 bits está sendo usado


A informação contida neste artigo aplica-se a:
  • Microsoft Excel 2000 Standard Edition
Palavras-chave: 
kbmt kbdtacode kbhowtomaster kbprogramming KB213267 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 213267  (http://support.microsoft.com/kb/213267/en-us/ )