close

Ganhe dinheiro navegando
na Internet 5 minutos por dia!
CLIQUE AQUI E REGISTE-SE JÁ
COM BONUS REFERER!


special

27 maio 2009

Crie o seu próprio programa de informação do sistema

Conhecemos programas como o SiSoft Sandra e HWiNFO32, que nos devolvem informação acerca do computador. Mas por vezes queríamos que devolvesse os resultados de uma outra maneira. Neste exemplo irei demonstrar uma maneira simples de como o AutoIt poderá devolver informação acerca do seu computador.

No AutoIt existem Macros, que são basicamente variáveis especiais, que apenas devolvem informação. E uma boa parte delas devolvem informações do computador. Diferentemente da “simbologia” para identificar uma variável, numa Macro é utilizado o símbolo “@” ao invés de “$”.

Eis aqui a lista de Macros relacionados com as informações do sistema:

  • Pastas
    • Pastas de definições dos programas
      • @AppDataCommonDir - Localização da pasta “Application Data” ou “ProgramData” no Windows Vista
      • @AppDataDir - Localização da pasta “Application Data” do utilizador
      • @CommonFilesDir - Localização da pasta “Common Files
    • Pastas dos utilizadores
      • @UserProfileDir – Localização da pasta do utilizador actual (com a letra do disco)
      • @HomePathLocalização da pasta do utilizador actual (sem a letra do disco)
      • @DesktopCommonDir - Localização da pasta pública do Ambiente de Trabalho
      • @DesktopDir - Localização da pasta do Ambiente de Trabalho, para o utilizador actual
      • @MyDocumentsDirLocalização da pasta “Os Meus Documentos” ou “Documentos” do utilizador actual.
      • @DocumentsCommonDir - Localização da pasta pública para “Os Meus Documentos” ou “Documentos” no Windows Vista
      • @FavoritesCommonDir - Localização da pasta públicaFavoritos
      • @FavoritesDir - Localização da pasta “Favoritos”, para o utilizador actual
    • Pasta Programas
      • @ProgramFilesDir – Localização da pasta “Programas
    • Menu Iniciar
      • @ProgramsDir - Localização da pasta “Programas”, dos atalhos do Menu Iniciar no utilizador actual
      • @ProgramsCommonDir – Localização da pasta públicaProgramas”, dos atalhos do Menu Iniciar
      • @StartMenuDir - Localização da pasta do Menu Iniciar no utilizador actual
      • @StartMenuCommonDirLocalização da pasta pública do Menu Iniciar
    • Arranque
      • @StartupDirLocalização da pasta “Arranque” do utilizador actual (programas que arrancam quando o Windows inicia)
      • @StartupCommonDir – Localização da pasta públicaArranque” (programas que arrancam quando o Windows inicia)
    • Windows
      • @SystemDir – Localização da pasta “System32” ou “System
      • @TempDir – Localização da pasta de ficheiros temporáriosTemp
      • @WindowsDir – Localização da pasta “Windows
      • @HomeDriveLetra do disco em que está instalado o Windows

  • Sistema:
    • Sistema Operativo
      • @OSType – Diz qual é o tipo de sistema operativo instalado (ex: WIN32_NT para o Windows NT/2000/XP/2003/Vista/2008/Win7/2008R2)
      • @OSVersion – Diz qual o sistema operativo instalado (ex: WIN_7, WIN_2008, WIN_VISTA)
      • @OSBuild – Devolve o número da compilação (build) do sistema operativo
      • @OSLangDevolve o código da língua do sistema operativo (veja o apêndice “@OSLang Values” no ficheiro de ajuda para mais informações)
      • @OSServicePack – Diz qual é o Service Pack instalado no sistema operativo
      • @OSArchDiz qual é a arquitectura do sistema operativo (32-Bits -> X86)(64-Bit –> X64)
    • Rede
      • @ComputerName - Nome do computador
      • @UserName – Nome do utilizador actual
      • @IPAddress1 – Diz qual o IP para a primeira placa de rede (ex: 192.168.1.1)
      • @IPAddress2 – Diz o IP para a segunda placa de rede (mostra 0.0.0.0, se não existir nenhuma placa)
      • @IPAddress3 - Diz o IP para a terceira placa de rede (mostra 0.0.0.0, se não existir nenhuma placa)
      • @IPAddress4 - Diz o IP para a quarta placa de rede (mostra 0.0.0.0, se não existir nenhuma placa)
    • Processador
      • @CPUArch - Diz qual é a arquitectura do processador (32-Bits –> X86)(64-Bit –> X64)
    • Monitor
      • @DesktopWidth - Diz qual a largura da resolução do monitor (ex: 1024)
      • @DesktopHeight - Diz qual a altura da resolução do monitor (ex: 768)
      • @DesktopDepth - Diz qual a profundidade de cor do monitor (ex: 32-bit)
      • @DesktopRefresh - Diz qual a taxa de refrescamento do monitor (ex: 60Hz)
    • Teclado
      • @KBLayout – Devolve o código da língua do teclado (veja o apêndice “@OSLang Values” no ficheiro de ajuda para mais informações)

Exemplo

MsgBox("", "Informação do Sistema", "Sistema Operativo"&@CRLF&"  Tipo OS: "&@OSType&@CRLF&"  Versão OS: "&@OSVersion&@CRLF&"  Compilação: "&@OSBuild&@CRLF&"  Lingua OS: "&@OSLang&@CRLF&"  Service Pack: "&@OSServicePack&@CRLF&"  Arquitectura OS: "&@OSArch&@CRLF&"Rede"&@CRLF&"  Nome PC: "&@ComputerName&@CRLF&"  Nome utilizador: "&@UserName&@CRLF&"  1 IP: "&@IPAddress1&@CRLF&"  2 IP: "&@IPAddress2&@CRLF&"  3 IP: "&@IPAddress3&@CRLF&"  4 IP: "&@IPAddress4&@CRLF&"Processador"&@CRLF&"  Arquitectura CPU: "&@CPUArch&@CRLF&"Monitor"&@CRLF&"  Largura: "&@DesktopWidth&@CRLF&"  Altura: "&@DesktopHeight&@CRLF&"  Profundidade: "&@DesktopDepth&@CRLF&"  Taxa refrescamento: "&@DesktopRefresh&@CRLF&"Teclado"&@CRLF&"  Lingua: "&@KBLayout)
MsgBox("", "Informação Pastas", "Pastas de definições dos programas"&@CRLF&"  ProgramData: "&@AppDataCommonDir&@CRLF&"  Application Data util: "&@AppDataDir&@CRLF&"  Common Files: "&@CommonFilesDir&@CRLF&"Pastas dos utilizadores "&@CRLF&"  Pasta util actual: "&@UserProfileDir&@CRLF&"  Pasta util actual: "&@HomePath&@CRLF&"  Pasta pública do Ambiente de Trabalho: "&@DesktopCommonDir&@CRLF&"  Pasta Ambiente trabalho util: "&@DesktopDir&@CRLF&"  Pasta Documentos util: "&@MyDocumentsDir&@CRLF&"  Pasta pública Documentos: "&@DocumentsCommonDir&@CRLF&"  Pasta pública Favoritos: "&@FavoritesCommonDir&@CRLF&"  Pasta Favoritos util: "&@FavoritesDir&@CRLF&"Pasta Programas"&@CRLF&"  Pasta Programas: "&@ProgramFilesDir&@CRLF&"Menu Iniciar"&@CRLF&"  Pasta programas Menu: "&@ProgramsDir&@CRLF&"  Pasta pública programas Menu: "&@ProgramsCommonDir&@CRLF&"  Pasta Menu Iniciar util: "&@StartMenuDir&@CRLF&"  Pasta pública Menu Iniciar: "&@StartMenuCommonDir&@CRLF&"Arranque"&@CRLF&"  Pasta Arranque util: "&@StartupDir&@CRLF&"  Pasta pública Arranque: "&@StartupCommonDir&@CRLF&"Windows"&@CRLF&"  Pasta System32: "&@SystemDir&@CRLF&"  Pasta Temp: "&@TempDir&@CRLF&"  Pasta Windows: "&@WindowsDir&@CRLF&"  Letra disco Windows: "&@HomeDrive)

Download Código Fonte | Download Executável

Qualquer dúvida, não hesite! Coloque-a aqui!

Gostou do que leu?
Subscrever pelo RSS
Ou
Endereço de E-Mail:
Ou
Seguir pelo Twitter

Artigos Relacionados

3 comentários

Raul Souza

To gostando pra carambo do AutoIt, agora faço as coisas com poucos clicks... =]

duvida não tenho nenhuma pq num tenho mto tempo para estudar..mas vamos que vamos... =)

Anônimo

O arquivo de ajuda não funciona, eu clico na lista mas ao lado fica todo branco.

Eugênio Pierazzoli

Tem uma coisa interessante... bloquear acesso ou limitar pelo numero de serie do HD. (ATENCAO! É diferente do numero serial da partição, que se pega com um comando simples)\
Parece que usa um API do windows e ainda não consegui funcionar: O meu script serve para pegar o numero de serie e escrever no bloco de notas

com alguns ifs vcs conseguirão usar a mesma funçao para verificar e autorizar o seu script.




run ("notepad")
;~ Send ("Sem título - Bloco de notas", "Edit1", "")

_hdSNchecar()

Func _hdSNchecar()
$wbemFlagReturnImmediately = 0x10
$wbemFlagForwardOnly = 0x20
$colItems = ""
$strComputer = "localhost"

$Output = ""

$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_PhysicalMedia", "WQL", _
$wbemFlagReturnImmediately + $wbemFlagForwardOnly)

$sn = ""

If IsObj($colItems) Then
For $objItem In $colItems
$Output = $objItem.SerialNumber
if ($Output <> "") Then $sn = $Output
;~ MsgBox (0 , "HD SN" , $sn )
;~ ClipPut ($sn)
WinActivate ("Sem título - Bloco de notas")
Send ($sn & "{ENTER}")
Next
Else
MsgBox(0, "WMI Output", "No WMI Objects Found for class: " & "Win32_PhysicalMedia")
EndIf

;~ Return ($sn)



EndFunc ;==>_hdSNchecar

Func WMIDateStringToDate($dtmDate)

Return (StringMid($dtmDate, 5, 2) & "/" & _
StringMid($dtmDate, 7, 2) & "/" & StringLeft($dtmDate, 4) _
& " " & StringMid($dtmDate, 9, 2) & ":" & StringMid($dtmDate, 11, 2) & ":" & StringMid($dtmDate, 13, 2))
EndFunc ;==>WMIDateStringToDate

Postar um comentário