Har du någonsin fått veta datorns CPU eller minnesinformation, serienummer eller modellnummer eller installerade programvaruversioner, men var inte säker på var du ska titta? Med bara lite enkel kod i Excel kan du extrahera ett helt bibliotek med din Windows PC-information. Hade du den PC du beställde? Ta reda på de här systeminformationsverktygen [Windows] Hade du den dator du beställde? Ta reda på de här systeminformationsverktygen [Windows] Har du nyligen köpt en dator? Om ja, var det anpassat? Genom anpassad menar jag att den är sammansatt av en lokal datorbutik, eller ens av någon du vet som bygger och säljer datorer. Om du ... Läs mer.
Låter för bra för att vara sant? Jo, det är Windows, om du vet hur du använder den.
Du kan behöva få händerna lite smutsiga, men i den här artikeln ger vi dig all kod du behöver, och hur du lägger den in i Excel och får den att fungera. När du är klar har du ett Excel-ark som varje gång du öppnar det, berättar allt du någonsin ville veta om ditt datorsystem.
Observera att detta endast fungerar med skrivbordsversionen av Excel, som du kan få med en kostnadsfri provversion av Office 6-sätt som du kan använda Microsoft Office utan att betala för det 6 sätt du kan använda Microsoft Office utan att betala för det Behöver du Microsoft Office, men gillar inte prislappen? Vi visar dig fria alternativ, inklusive gratisprov och lätta eller mobila versioner av Microsoft Office-paketet. Läs mer .
The Magic of WMI
På vilken som helst dator som kör ett Microsoft-operativsystem har du tillgång till en kraftfull uppsättning tillägg som heter Windows Management Instrumentation (WMI), vilket ger dig en mycket kraftfull och omfattande metod för att få tillgång till information och specifikationer om datorn, operativsystemet 4 Easy Ways att veta om du är på en 64-bitars version av Windows 4 enkla sätt att veta om du har en 64-bitars version av Windows Använder du en processor som stöder ett 64-bitars operativsystem och kör 64 -bit operativsystem? Den genomsnittliga offline-användaren vet antagligen inte svaren på dessa frågor, även om de borde .... Läs mer och installerad programvara.
Bäst av allt är WMI tillgängligt. Så här skriver du ett Windows-skript för att ändra nätverksinställningar på flyget. Så här skriver du ett Windows-skript för att ändra nätverksinställningar på flyget. I många kontor eller arbetsmiljöer kanske du behöver omdefiniera dina nätverksinställningar till ansluta till olika nätverk. Jag befann mig i denna situation ofta nog och blev så trött på att surfa till ... Läs mer från programmeringsspråk som VBA Hur kan du göra din egen enkla app med VBA Hur kan du göra din egen enkla app med VBA För de av du som verkligen skulle älska att kunna skriva din egen ansökan, men aldrig har skrivit en enda kod kod innan jag kommer att gå igenom dig genom att göra din mycket ... Läs mer, tillgänglig i nästan alla Microsoft Office-produkter.
Konfigurera ditt automatiska kalkylblad
Skapa först din nya Excel-arbetsbok och kalla den något som MyComputerInfo. xlsm (Macro-aktiverad). Öppna den, hoppa över Ark1 och byt namn på de följande 11 arken enligt följande:
- Nätverk
- LogicalDisk
- processor
- Fysiskt minne
- Video Controller
- OnBoardDevices
- Operativ system
- Skrivare
- programvara
- konton
- tjänster
Dessa kommer att hålla alla dina datoruppgifter och kommer att uppdateras varje gång du öppnar detta Excel-kalkylblad.
Gå sedan vidare till menyalternativet Utvecklare och under Kontrollpanelen klicka på Visa kod .
Om du inte ser menyalternativet Utvecklare klickar du på Arkiv> Alternativ> Anpassa band, ändrar valkommandon från rullgardinsmenyn till Alla flikar, väljer Utvecklare och trycker på knappen Lägg till >> för att lägga till den på Anpassad bandsidan. Se till att kryssrutan Utvecklare på den sidan är vald när du har lagt till den.
När du är inne i VBA-kodredigeraren Övervaka om dina VBA-program körs med den här slickskriptmonitorn Om dina VBA-program körs med detta slick-skript Läs mer, allt du behöver göra är att lägga till skripten nedan till en modul. Dessa skript kommer att göra allt tungt lyft. Du behöver inte skriva den här koden själv, bara kopiera och klistra in dem som visas nedan.
När du är klar med att kopiera och klistra in med koden i nästa avsnitt, behöver du bara lägga till lite mer kod för att ladda upp dina ark, och du är klar.
Okej, redo att kopiera och klistra in? Låt oss ta itu med det.
Bygga dina WMI-moduler
Inspirationen för den här koden kommer från en fantastisk Google Sites-resurs som heter Beyond Excel. Exemplet som visas där är en subrutin som heter WMI (), som överför all din dators nätverksinformation till felsökningsområdet för Excel-programmeringsmiljön.
Självklart gör det inte oss mycket bra där, så jag har ändrat koden för att istället lägga ut alla detaljer till ett av de ark som du skapade i det första steget i den här guiden.
I det kodande navigeringsområdet ser du även en sektion som heter Moduler och en komponent under namnet Module1 . Dubbelklicka på den här för att öppna den. Om du inte ser mappen Moduler, expandera Insert från menyn och välj Modul .
Det här området är där alla subrutiner kommer att användas som använder WMI för att dra all viktig information om din dator och ladda den i arken du skapade.
Placera de följande raderna längst upp i kodfönstret i sig själv.
Public oWMISrvEx As Object 'SWbemServicesEx Public oWMIObjSet As Object 'SWbemServicesObjectSet Public oWMIObjEx As Object 'SWbemObjectEx Public oWMIProp As Object 'SWbemProperty Public sWQL As String 'WQL Statement Public n
Det ska se ut så här när du är klar:
Klistra in följande kod i modul1 under de linjer du just skapat:
Sub NetworkWMI() sWQL = "Select * From Win32_NetworkAdapterConfiguration" Set oWMISrvEx = GetObject("winmgmts:root/CIMV2") Set oWMIObjSet = oWMISrvEx.ExecQuery(sWQL) intRow = 2 strRow = Str(intRow) ThisWorkbook.Sheets("Network").Range("A1").Value = "Name" ThisWorkbook.Sheets("Network").Cells(1, 1).Font.Bold = True ThisWorkbook.Sheets("Network").Range("B1").Value = "Value" ThisWorkbook.Sheets("Network").Cells(1, 2).Font.Bold = True For Each oWMIObjEx In oWMIObjSet For Each oWMIProp In oWMIObjEx.Properties_ If Not IsNull(oWMIProp.Value) Then If IsArray(oWMIProp.Value) Then For n = LBound(oWMIProp.Value) To UBound(oWMIProp.Value) Debug.Print oWMIProp.Name & "(" & n & ")", oWMIProp.Value(n) ThisWorkbook.Sheets("Network").Range("A" & Trim(strRow)).Value = oWMIProp.Name ThisWorkbook.Sheets("Network").Range("B" & Trim(strRow)).Value = oWMIProp.Value(n) ThisWorkbook.Sheets("Network").Range("B" & Trim(strRow)).HorizontalAlignment = xlLeft intRow = intRow + 1 strRow = Str(intRow) Next Else ThisWorkbook.Sheets("Network").Range("A" & Trim(strRow)).Value = oWMIProp.Name ThisWorkbook.Sheets("Network").Range("B" & Trim(strRow)).Value = oWMIProp.Value ThisWorkbook.Sheets("Network").Range("B" & Trim(strRow)).HorizontalAlignment = xlLeft intRow = intRow + 1 strRow = Str(intRow) End If End If Next 'End If Next End Sub
Nu ska du skapa en identisk funktion för detta för varje ark du skapade i den första delen av den här guiden med några mindre skillnader.
Till exempel skulle du kopiera den här koden ovan för NetworkWMI (), klistra in den under slutet av den koden och ersätt sedan "NetworkWMI ()" med "LogicalDiskWMI ()"
Det är bara några avsnitt du behöver ändra så att den här koden fyller i rätt blad.
Ändra detta:
sWQL = "Select * From Win32_NetworkAdapterConfiguration"
Till detta:
sWQL = "Select * From Win32_LogicalDisk"
Ändra dessa fyra rader:
ThisWorkbook.Sheets("Network").Range("A1").Value = "Name" ThisWorkbook.Sheets("Network").Cells(1, 1).Font.Bold = True ThisWorkbook.Sheets("Network").Range("B1").Value = "Value" ThisWorkbook.Sheets("Network").Cells(1, 2).Font.Bold = True
Till detta:
ThisWorkbook.Sheets("LogicalDisk").Range("A1").Value = "Name" ThisWorkbook.Sheets("LogicalDisk").Cells(1, 1).Font.Bold = True ThisWorkbook.Sheets("LogicalDisk").Range("B1").Value = "Value" ThisWorkbook.Sheets("LogicalDisk").Cells(1, 2).Font.Bold = True
Ändra dessa två rader:
ThisWorkbook.Sheets("Network").Range("A" & Trim(strRow)).Value = oWMIProp.Name ThisWorkbook.Sheets("Network").Range("B" & Trim(strRow)).Value = oWMIProp.Value(n)
Till detta:
ThisWorkbook.Sheets("LogicalDisk").Range("A" & Trim(strRow)).Value = oWMIProp.Name ThisWorkbook.Sheets("LogicalDisk").Range("B" & Trim(strRow)).Value = oWMIProp.Value(n)
Och dessa tre rader:
ThisWorkbook.Sheets("Network").Range("A" & Trim(strRow)).Value = oWMIProp.Name ThisWorkbook.Sheets("Network").Range("B" & Trim(strRow)).Value = oWMIProp.Value ThisWorkbook.Sheets("Network").Range("B" & Trim(strRow)).HorizontalAlignment = xlLeft
Till detta:
ThisWorkbook.Sheets("LogicalDisk").Range("A" & Trim(strRow)).Value = oWMIProp.Name ThisWorkbook.Sheets("LogicalDisk").Range("B" & Trim(strRow)).Value = oWMIProp.Value ThisWorkbook.Sheets("LogicalDisk").Range("B" & Trim(strRow)).HorizontalAlignment = xlLeft
Nu är du nästan klar!
Upprepa ovanstående för varje flik i din arbetsbok. Funktionerna kommer att vara enligt följande:
- "ProcessorWMI ()" för "Processor" -arket.
- "PhysicalMemWMI ()" för "Physical Memory" -arket.
- "VideoControlWMI ()" för "Video Controller" -arket.
- "OnBoardWMI ()" för "OnBoardDevices" -bladet.
- "PrinterWMI ()" för "Skrivare" -arket.
- "OperatingWMI ()" för operativsystemet.
- "SoftwareWMI ()" för "Software" arket.
- "ServicesWMI ()" för "Services" -bladet.
De särskilda "Win32_" -objekten du behöver använda för att komma åt denna information om din dator är följande:
- Win32_NetworkAdapterConfiguration - Alla dina nätverkskonfigurationsinställningar
- Win32_LogicalDisk - diskar med kapacitet och ledigt utrymme.
- Win32_Processor - CPU Specs
- Win32_PhysicalMemoryArray - RAM / Installerat minnesstorlek
- Win32_VideoController - Grafikkort och inställningar
- Win32_OnBoardDevice - Moderkortenheter
- Win32_OperatingSystem - Vilken version av Windows med serienummer
- WIn32_Printer - Installerade skrivare
- Win32_Product - Installerad programvara
- Win32_BaseService - Lista tjänster som körs (eller stoppas) på en PC tillsammans med tjänstens sökväg och filnamn.
Avsluta kopiering / klistra in och tweakera alla dessa funktioner i kodens Module1- område. När du är klar gå vidare till nästa avsnitt i den här guiden.
Kom ihåg att spara din kod i VB-vyn! Om du ursprungligen sparade din arbetsbok med .xls- filtypen, kommer Excel nu att be dig att använda en Macro-aktiverad filtyp, till exempel .xlsm .
Laddar automatiskt arbetsboken
Nu när du har alla dessa kraftfulla funktioner skapade, är allt som finns kvar att köra dem varje gång arbetsboken öppnas. Att göra detta är väldigt lätt.
I den vänstra objektwebbläsaren, under Microsoft Excel Objects, ska du se ThisWorkbook . Dubbelklicka på det objektet för att öppna det.
Överst i kodområdet finns det två nedrullningsrutor, ändra vänster till Arbetsbok och den högra till Öppna .
Du får se en funktion som genereras automatiskt för dig som heter Privat Sub Workbook_Open () .
Inuti här skriver du följande kodsekvenser så funktionen ser ut så här:
Private Sub Workbook_Open() NetworkWMI LogicalDiskWMI ProcessorWMI PhysicalMemWMI VideoControlWMI OnBoardWMI PrinterWMI SoftwareWMI OperatingWMI ServicesWMI End Sub
Nu varje gång du öppnar arbetsboken kommer alla dina nyskapade funktioner att ringas, dra alla data Visualisera dina data och göra dina kalkylblad Användarvänliga med en Excel Dashboard Visualisera dina data och gör dina kalkylblad användarvänliga med en Excel Dashboard Ibland, ett enkelt kalkylarkformat är inte engagerande för att göra dina data tillgängliga. En instrumentpanel gör att du kan presentera dina viktigaste data i ett lätt att smälta format. Läs mer från datorn och lägg den i lämpligt ark.
För att se den i åtgärd, spara koden, stäng kodfönstret, spara arbetsboken och stäng den också. Öppna filen som du stängde just nu, och du kommer att upptäcka att varje ark innehåller datamängder om din dator.
Eftersom arbetsboken innehåller makron, som kan inaktiveras av säkerhetsskäl, kanske du måste klicka på Aktivera innehåll högst upp på arket för att data ska samlas in.
Varning - det samlar in en hel del data, förvänta dig att vänta några minuter innan den laddas när du först öppnar filen.
Samla in datorinformation
Det fantastiska med att använda WMI för detta är att data ovan bara är toppen av isberget. Det finns hundratals fler WMI-klasser tillgängliga som innehåller information om alla aspekter av ditt datorsystem.
Om du var äventyrlig och ville ta det här ett steg längre, kan du vrida det första arket i arbetsboken i en instrumentpanel. Bygg ditt eget väderpanel i den här Google-kalkylarkmästarklassen. Skapa ditt eget väderpanel i den här Google-kalkylarkmästarklassen. Vill du ha det? för att konvertera ditt Google Drive-konto till ett intelligent väderanalyssystem och leva ut en Star Trek-fantasi? Ok! Läs mer och använd data från de andra arken för att mata den instrumentpanelen.
Utgångspunkten är att med hjälp av det här nya verktyget kan du samla in och visa mer information än de flesta IT-experter. IT Knowledge Exchange - En gratis version av Experts Exchange! IT Knowledge Exchange - En gratis version av Experts Exchange! Läs mer, även om insikten är tillgänglig om ett datorsystem, och du kommer att kunna göra det på en bråkdel av tiden som samma experter spenderar genom att gräva igenom kontrollpanelen och administrativa områden som söker efter dessa uppgifter.
Ser du själv bygga och använda ett verktyg som detta? Är du en VBA-programmerare 4 Stora webbplatser som gör dig till en Visual Basic Guru 4 Bra webbplatser för att göra dig till en Visual Basic Guru Vill du lära dig Visual Basic? Här är några bra resurser för att komma igång. Läs mer och har du någonsin använt WMI-klasser? Dela dina egna erfarenheter och idéer i kommentarfältet nedan!
Bildkrediter: Adriano Castelli via Shutterstock.com, Mclek via Shutterstock