Wmic parancs programból

Wmic parancs programból
2021-03-19T23:26:07+01:00
2021-03-21T20:02:51+01:00
2022-10-15T21:25:38+02:00
x00
A kód beillesztése itt nem nagyon megy, eltűnik az indentálás, így inkább a fájlt töltöttem fel.

Parancssorba kiadva:

wmic memphysical get memoryerrorcorrection

Simán kiírja hogy 6. A webről letöltöttem egy C++ program forráskódját, mely a wmic parancs lekérdezéseit tudná megcsinálni. Ez működik is, a Windows nevét kérdezi le, de sehogy se találom mit kell módosítani hogy mást kérdezzen le. A saját módosításaim //-ben vannak, sehogy se működik. Mit kellene módosítani? Köszönöm.

Ja most vettem észre hogy ez a Tudástárba kellett volna.

Ha beírom hogy wmic, kiírja hogy root/cli-ben van. Módosítottam a programot, de az se segít. Arra már rájöttem hogy a "WQL" az úgy kell maradjon.
Mutasd a teljes hozzászólást!
Csatolt állomány
Megvan.
Mutasd a teljes hozzászólást!
Csatolt állomány

  • Mi a cél?

    Nem lenne egyszerűbb egy sima 'wmic' command-ot futtatni és parseolni az eredményt?

    pl

    wmic OS get FreePhysicalMemory
    Ha megakarod tanulni a COM objektumok használatát, akkor ássad bele magad, később akár hasznos is lehet. Amennyiben csak az a cél, hogy egy alkalmazásodat gyorsan működésre bírd, kinyerj néhány adatot, akkor sokkal egyszerűbb meghívogatni a parancsokat és parse-olni a visszatérési értéket.
    Mutasd a teljes hozzászólást!
  • A program elején lekérdezni hogy ECC-s-e a memória. Nyilván meg lehet hívni exec-cel a cmd-t, átirányítani a kimenetét, de gondoltam hátha valaki tudja hogy lehet megoldani közvetlenül. Eredetileg a Windows nevét kérdezi le. Gondoltam nagyon egyszerű lehet módosítani, de nyilván ehhez valaki COM-hoz értő kellene. Na mindegy.
    Mutasd a teljes hozzászólást!
  • Megvan.
    Mutasd a teljes hozzászólást!
    Csatolt állomány
  • Ha ragaszkodsz a natív windows-os megoldáshoz, akkor kénytelen leszel felcsapni a dokumentációt / referenciát..

    pl Miből gondoltad, hogy a 'Win32_OperatingSystem'-nek lesz 'memoryerrorcorrection' member-e?
    Nézz utána, hogy milyen objektumok léteznek és miket tárolnak..

    Win32_OperatingSystem class

    Win32_PhysicalMemoryArray class
    Láthatod, hogy ez utóbbinak van 'MemoryErrorCorrection' membere, sőt még azt is megtalálod, hogy mely értéknek mi a jelentése..

    MemoryErrorCorrection
    Data type: uint16
    Access type: Read-only
    Qualifiers: MappingStrings ("SMBIOS|Type 16|Memory Error Correction")
    Type of error correction used by the memory array.
    This value comes from the Memory Error Correction member of the Physical Memory Array structure in the SMBIOS information.
    Reserved (0)
    Other (1)
    Unknown (2)
    None (3)
    Parity (4)
    Single-bit ECC (5)
    Multi-bit ECC (6)
    CRC (7)
    Mutasd a teljes hozzászólást!
  • MFC programból hívva a kezdő 2 lépést ki kell hagyni. Hívása:

    WMI_lVal("SELECT * FROM Win32_PhysicalMemoryArray", L"MemoryErrorCorrection")

    Tévesztőgépen 3-at ad, számítógépen 5-öt vagy 6-ot.
    Mutasd a teljes hozzászólást!
    Csatolt állomány
  • Na megvan.
    Mutasd a teljes hozzászólást!
    Csatolt állomány
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd