Sådan ser du alle dine pc-oplysninger ved hjælp af et enkelt Excel VBA-script

Excel og 10 minutters arbejde giver dig mere detaljerede oplysninger om din computer, end du nogensinde troede var muligt. Lyder det for godt til at være sandt? Det er Windows, hvis du ved hvordan du bruger det.

Excel og 10 minutters arbejde giver dig mere detaljerede oplysninger om din computer, end du nogensinde troede var muligt.  Lyder det for godt til at være sandt?  Det er Windows, hvis du ved hvordan du bruger det.
Reklame

Har du nogensinde brug for at kende din computers CPU eller hukommelsesoplysninger, serienummer eller modelnummer eller installerede softwareversioner, men var ikke sikker på, hvor du skal se? Med blot en smule simpel kode i Excel kan du udtrække et komplet bibliotek af dine Windows PC-oplysninger. Har du fået den PC du bestilte? Find ud af disse systeminformationsværktøjer [Windows] Har du fået den pc, du bestilte? Find ud af disse systeminformationsværktøjer [Windows] Har du for nylig købt en pc? Hvis ja, var det tilpasset? Ved at tilpasse, mener jeg samlet af en lokal computerbutik, eller endda bare af en person, du ved, der opbygger og sælger computere. Hvis du ... Læs mere.

Lyder det for godt til at være sandt? Nå, det er Windows, hvis du ved hvordan du bruger det.

Du skal måske få dine hænder lidt beskidte, men i denne artikel vil vi give dig den kode, du har brug for, og hvordan du sætter den ind i Excel og gør den til at fungere. Når du er færdig, har du et Excel-ark, der hver gang du åbner det, fortæller dig alt, hvad du nogensinde ville vide om dit computersystem.

Bemærk, at dette kun virker med desktopversionen af ​​Excel, som du kan få med en gratis prøveversion af Office 6-måder, du kan bruge Microsoft Office uden at betale for det 6 måder, du kan bruge Microsoft Office uden at betale for det. Har du brug for Microsoft Office, men kan ikke lide prissedlen? Vi viser dig gratis alternativer, herunder gratisforsøg og lette eller mobile versioner af Microsoft Office-pakken. Læs mere .

The Magic of WMI

På enhver computer, der kører et Microsoft-operativsystem, har du adgang til et kraftigt sæt af udvidelser kaldet Windows Management Instrumentation (WMI), som giver dig en meget kraftfuld og omfattende metode til at få adgang til oplysninger og specifikationer om din computer, operativsystem 4 Easy Ways at vide, om du har en 64-bit version af Windows 4 nemme måder at vide, hvis du har en 64-bit version af Windows Bruger du en processor, der understøtter et 64-bit operativsystem og kører 64 -bit operativsystem? Den gennemsnitlige off-and-on pc-bruger ved nok ikke svarene på disse spørgsmål, selvom de skulle .... Læs mere og installeret software.

wmiwindows

Bedst af alt er WMI tilgængelig Sådan skriver du et Windows-script til at ændre netværksindstillinger på flyve Sådan skriver du et Windows-script til at ændre netværksindstillinger på flyet I mange kontorer eller arbejdsmiljøer skal du muligvis omdefinere dine netværksindstillinger til Opret forbindelse til forskellige netværk. Jeg fandt mig selv i denne situation ofte nok og blev så træt af at surfe til ... Læs mere fra programmeringssprog som VBA Hvordan kan du lave din egen enkle app med VBA Hvordan kan du lave din egen enkle app med VBA For dem af du vil virkelig elske at kunne skrive din egen ansøgning, men har aldrig skrevet en enkelt kode kode før, jeg går igennem med at gøre din meget ... Læs mere, tilgængelig i næsten alle Microsoft Office-produkter.

Opsætning af dit automatiserede regneark

Først skal du oprette din nye Excel-projektmappe og kalde den noget som MyComputerInfo. xlsm (Macro-aktiveret). Åbn den, spring over Sheet1, og omdøb de næste 11 ark som følger:

  • Netværk
  • LogicalDisk
  • Processor
  • Fysisk hukommelse
  • Video Controller
  • OnBoardDevices
  • Operativ system
  • Printer
  • Software
  • Konti
  • Services

Disse vil holde alle dine computer detaljer, og vil blive opdateret hver gang du åbner dette Excel regneark.

wmi1

Gå derefter til Udvikler- menupunktet, og klik på Vis kode under Kontrolpanel .

wmi2

Hvis du ikke ser udvikler-menupunktet, skal du klikke på Filer> Valg> Tilpas bånd, ændre valgkommandoerne fra rullemenuen til Alle faner, vælg Udvikler og tryk på knappen Tilføj >> for at tilføje det til Tilpasset båndside. Sørg for, at afkrydsningsfeltet Udvikler på den side er valgt, når du har tilføjet det.

wmi3

Når du er inde i VBA-kodeditoren, Overvåg Hvis dine VBA-apps kører med denne slick script-monitor Hvis dine VBA-apps kører med dette slick script Læs mere, er alt, hvad du skal gøre, at tilføje scriptene nedenfor til et modul. Disse scripts vil gøre alt det tunge løft. Du behøver ikke selv at skrive denne kode, bare kopiere og indsætte dem som vist nedenfor.

Når du er færdig med at kopiere og indsætte ved hjælp af koden i næste afsnit, er alt du skal gøre, at tilføje lidt mere kode for at indlæse dine ark, og du er færdig.

Okay, klar til at kopiere og indsætte? Lad os komme til det.

Opbygning af dine WMI-moduler

Inspirationen til denne kode kommer fra en fantastisk Google Sites ressource kaldet Beyond Excel. Eksemplet der vises der er en subrutine kaldet WMI (), som overfører alle computerens netværksoplysninger til fejlfindingsområdet i Excel-programmeringsmiljøet.

Selvfølgelig gør det os ikke meget godt der, så jeg har ændret koden til i stedet at udlæse alle detaljerne til et af de ark, du oprettede i første trin i denne vejledning.

I det kodende navigationsområde ses også en sektion kaldet Moduler og en komponent under kaldet Modul1 . Dobbeltklik på dette for at åbne det. Hvis du ikke kan se mappen Moduler, skal du udvide Indsæt fra menuen og vælge Modul .

wmi5

Dette område er, hvor alle subrutinerne vil være, der vil bruge WMI til at trække alle vigtige oplysninger om din computer og indlæse den i arkene du har oprettet.

Placer følgende linjer øverst i kodevinduet alene.

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 skal se sådan ud, når du er færdig:

wmi5

Indsæt følgende kode i modul1 under de linjer, du lige har oprettet:

 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 skal du skabe en identisk funktion til dette for hvert ark, du oprettede i første del af denne vejledning, med nogle mindre forskelle.

For eksempel vil du kopiere den pågældende kode ovenfor til NetworkWMI (), indsætte den under slutningen af ​​den pågældende kode og derefter erstatte "NetworkWMI ()" med "LogicalDiskWMI ()"

Der er kun nogle få afsnit, du skal ændre, så denne kode udfylder det korrekte ark.

Skift dette:

 sWQL = "Select * From Win32_NetworkAdapterConfiguration" 

Til dette:

 sWQL = "Select * From Win32_LogicalDisk" 

Skift disse fire linjer:

 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 

Til dette:

 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 

Skift disse to linjer:

 ThisWorkbook.Sheets("Network").Range("A" & Trim(strRow)).Value = oWMIProp.Name ThisWorkbook.Sheets("Network").Range("B" & Trim(strRow)).Value = oWMIProp.Value(n) 

Til dette:

 ThisWorkbook.Sheets("LogicalDisk").Range("A" & Trim(strRow)).Value = oWMIProp.Name ThisWorkbook.Sheets("LogicalDisk").Range("B" & Trim(strRow)).Value = oWMIProp.Value(n) 

Og disse tre linjer:

 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 

Til dette:

 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 er du næsten færdig!

Gentag ovenstående for hver fane i din projektmappe. Funktionerne er som følger:

  • "ProcessorWMI ()" til "Processor" arket.
  • "PhysicalMemWMI ()" til "Physical Memory" -arket.
  • "VideoControlWMI ()" til "Video Controller" ark.
  • "OnBoardWMI ()" til "OnBoardDevices" arket.
  • "PrinterWMI ()" til "Printer" arket.
  • "OperatingWMI ()" til operativsystemarket.
  • "SoftwareWMI ()" til "Software" arket.
  • "ServicesWMI ()" til "Services" arket.

De særlige "Win32_" -objekter, du skal bruge til at få adgang til disse oplysninger om din computer, er som følger:

  • Win32_NetworkAdapterConfiguration - Alle dine netværkskonfigurationsindstillinger
  • Win32_LogicalDisk - Disketter med kapacitet og ledig plads.
  • Win32_Processor - CPU Specs
  • Win32_PhysicalMemoryArray - RAM / Installeret Hukommelsesstørrelse
  • Win32_VideoController - Grafikkort og indstillinger
  • Win32_OnBoardDevice - Bundkort enheder
  • Win32_OperatingSystem - Hvilken version af Windows med serienummer
  • WIn32_Printer - installerede printere
  • Win32_Product - Installeret software
  • Win32_BaseService - Liste tjenester, der kører (eller stoppes) på enhver pc sammen med tjenesteens sti og filnavn.

Afslut kopiering / indsætning og tweaking af hver af disse funktioner i kodens Module1- område. Når du er færdig, fortsæt til næste afsnit i denne vejledning.

Husk at gemme din kode i VB-visningen! Hvis du oprindeligt gemte din projektmappe med .xls- filtypen, vil Excel nu bede dig om at bruge en Macro-aktiveret filtype, f.eks. .xlsm .

Henter automatisk arbejdsbogen

Nu, hvor du har alle disse kraftfulde funktioner oprettet, er alt, der er tilbage, at køre dem hver gang arbejdsbogen åbnes. At gøre dette er virkelig nemt.

I den venstre objektbrowser, under Microsoft Excel-objekter, skal du se ThisWorkbook . Dobbeltklik på det objekt for at åbne det.

wmi6

Øverst i kodeområdet er der to dropdown-bokse, skift den venstre til Workbook og den rigtige til Åbn .

wmi7

Du får se en funktion, der automatisk genereres for dig, der hedder Private Sub Workbook_Open () .

Indvendige her, skriv følgende linjer kode, så funktionen ser sådan ud:

 Private Sub Workbook_Open() NetworkWMI LogicalDiskWMI ProcessorWMI PhysicalMemWMI VideoControlWMI OnBoardWMI PrinterWMI SoftwareWMI OperatingWMI ServicesWMI End Sub 

Nu, hver gang du åbner projektmappen, vil hver af dine nyoprettede funktioner blive kaldt, trække alle data Visualisere dine data og gøre dit regneark brugervenligt med et Excel Dashboard Visualiser dine data og gør dit regneark brugervenligt med et Excel Dashboard nogle gange, er et simpelt regnearkformat ikke engagerende nok til at gøre dine data tilgængelige. Et dashboard giver dig mulighed for at præsentere dine vigtigste data i et let at fordøje format. Læs mere fra computeren, og indlæs det i det relevante ark.

For at se det i aktion skal du gemme koden, lukke kodevinduet, gemme projektmappen og lukke den også. Genåb den fil, du lige har lukket, og du vil opdage, at hvert enkelt ark indeholder mængder data om din computer.

Da arbejdsbogen indeholder makroer, som kan deaktiveres af sikkerhedsmæssige grunde, skal du muligvis klikke på Aktivér indhold øverst på arket for data, der skal indsamles.

Advarsel - det samler en masse data, så vent at vent et par minutter for at det skal indlæses, når du først åbner filen.

Indsamling af computerinformation

Det fantastiske ved at bruge WMI til dette er, at dataene ovenfor kun er toppen af ​​isbjerget. Der er flere hundrede flere WMI-klasser tilgængelige, der indeholder oplysninger om alle aspekter af dit computersystem.

Hvis du var eventyrlystne og ønskede at tage dette et skridt videre, kunne du dreje det første ark af arbejdsbogen til et instrumentbræt. Byg dit eget vejr-instrumentpanel i denne Google-regnearkmasterklasse. Byg dit eget vejrpanel i denne Google-regnearkmesterklasse. Vil du gerne for at gøre din Google Drive-konto til et intelligent vejranalysesystem og udleve en Star Trek-fantasi? Okay! Læs mere, og brug dataene fra de andre ark til at matche det dashboard.

Den nederste linie er at ved hjælp af dette nye værktøj kan du samle og vise mere information end de fleste it-eksperter. IT Knowledge Exchange - En gratis version af Eksperter Exchange! IT Knowledge Exchange - En gratis version af eksperter Exchange! Læs mere selv er klar over et computersystem, og du kan gøre det på en brøkdel af tiden, som de samme eksperter bruger til at grave igennem kontrolpanelet og administrative områder, der søger efter disse detaljer.

Ser du selv at bygge og bruge et værktøj som dette? Er du en VBA-programmør 4 Store hjemmesider, der gør dig til en Visual Basic Guru 4 Great Websites til at gøre dig til en Visual Basic Guru Vil du lære Visual Basic? Her er nogle gode ressourcer til at komme i gang. Læs mere og har du nogensinde brugt WMI-klasser? Del dine egne oplevelser og ideer i kommentarfeltet nedenfor!

Billedkreditter: Adriano Castelli via Shutterstock.com, Mclek via Shutterstock

In this article