Как получить информацию о системе?

Тема в разделе "WASM.WIN32", создана пользователем zaqer, 20 окт 2008.

  1. zaqer

    zaqer New Member

    Публикаций:
    0
    Регистрация:
    10 мар 2008
    Сообщения:
    22
    Как получить полную информацию о системе, кроме GetProductInfo, GetVersionEx, GetSystemInfo?
     
  2. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    GetUserName, GetComputerName, GlobalMemoryStatus, GetLogicalDriveStringsA, GetDriveTypeA, GetDiskFreeSpace, GetLocaleInfo, GetDeviceCaps, GetAdaptersInfo, GetNetworkParams и еще много чего.. :)
     
  3. nobodyzzz

    nobodyzzz New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2005
    Сообщения:
    475
    ковыряй systeminfo =)
     
  4. zaqer

    zaqer New Member

    Публикаций:
    0
    Регистрация:
    10 мар 2008
    Сообщения:
    22
    Спасибо, уточню вопрос как узнать версию системы Home или Professional?
     
  5. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Из PSDK 2003
    Код (Text):
    1. #include <windows.h>
    2. #include <stdio.h>
    3.  
    4. #define BUFSIZE 80
    5.  
    6. int main()
    7. {
    8.    OSVERSIONINFOEX osvi;
    9.    BOOL bOsVersionInfoEx;
    10.  
    11.    // Try calling GetVersionEx using the OSVERSIONINFOEX structure.
    12.    // If that fails, try using the OSVERSIONINFO structure.
    13.  
    14.    ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));
    15.    osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
    16.  
    17.    if( !(bOsVersionInfoEx = GetVersionEx ((OSVERSIONINFO *) &osvi)) )
    18.    {
    19.       osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFO);
    20.       if (! GetVersionEx ( (OSVERSIONINFO *) &osvi) )
    21.          return FALSE;
    22.    }
    23.  
    24.    switch (osvi.dwPlatformId)
    25.    {
    26.       // Test for the Windows NT product family.
    27.       case VER_PLATFORM_WIN32_NT:
    28.  
    29.          // Test for the specific product family.
    30.          if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 2 )
    31.             printf ("Microsoft Windows Server&nbsp;2003 family, ");
    32.  
    33.          if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1 )
    34.             printf ("Microsoft Windows XP ");
    35.  
    36.          if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 0 )
    37.             printf ("Microsoft Windows 2000 ");
    38.  
    39.          if ( osvi.dwMajorVersion <= 4 )
    40.             printf("Microsoft Windows NT ");
    41.  
    42.          // Test for specific product on Windows NT 4.0 SP6 and later.
    43.          if( bOsVersionInfoEx )
    44.          {
    45.             // Test for the workstation type.
    46.             if ( osvi.wProductType == VER_NT_WORKSTATION )
    47.             {
    48.                if( osvi.dwMajorVersion == 4 )
    49.                   printf ( "Workstation 4.0 " );
    50.                else if( osvi.wSuiteMask & VER_SUITE_PERSONAL )
    51.                   printf ( "Home Edition " );
    52.                else
    53.                   printf ( "Professional " );
    54.             }
    55.            
    56.             // Test for the server type.
    57.             else if ( osvi.wProductType == VER_NT_SERVER )
    58.             {
    59.                if( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 2 )
    60.                {
    61.                   if( osvi.wSuiteMask & VER_SUITE_DATACENTER )
    62.                      printf ( "Datacenter Edition " );
    63.                   else if( osvi.wSuiteMask & VER_SUITE_ENTERPRISE )
    64.                      printf ( "Enterprise Edition " );
    65.                   else if ( osvi.wSuiteMask == VER_SUITE_BLADE )
    66.                      printf ( "Web Edition " );
    67.                   else
    68.                      printf ( "Standard Edition " );
    69.                }
    70.  
    71.                else if( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 0 )
    72.                {
    73.                   if( osvi.wSuiteMask & VER_SUITE_DATACENTER )
    74.                      printf ( "Datacenter Server " );
    75.                   else if( osvi.wSuiteMask & VER_SUITE_ENTERPRISE )
    76.                      printf ( "Advanced Server " );
    77.                   else
    78.                      printf ( "Server " );
    79.                }
    80.  
    81.                else  // Windows NT 4.0
    82.                {
    83.                   if( osvi.wSuiteMask & VER_SUITE_ENTERPRISE )
    84.                      printf ("Server 4.0, Enterprise Edition " );
    85.                   else
    86.                      printf ( "Server 4.0 " );
    87.                }
    88.             }
    89.          }
    90.          else  // Test for specific product on Windows NT 4.0 SP5 and earlier
    91.          {
    92.             HKEY hKey;
    93.             char szProductType[BUFSIZE];
    94.             DWORD dwBufLen=BUFSIZE;
    95.             LONG lRet;
    96.  
    97.             lRet = RegOpenKeyEx( HKEY_LOCAL_MACHINE,
    98.                "SYSTEM\\CurrentControlSet\\Control\\ProductOptions",
    99.                0, KEY_QUERY_VALUE, &hKey );
    100.             if( lRet != ERROR_SUCCESS )
    101.                return FALSE;
    102.  
    103.             lRet = RegQueryValueEx( hKey, "ProductType", NULL, NULL,
    104.                (LPBYTE) szProductType, &dwBufLen);
    105.             if( (lRet != ERROR_SUCCESS) || (dwBufLen > BUFSIZE) )
    106.                return FALSE;
    107.  
    108.             RegCloseKey( hKey );
    109.  
    110.             if ( lstrcmpi( "WINNT", szProductType) == 0 )
    111.                printf( "Workstation " );
    112.             if ( lstrcmpi( "LANMANNT", szProductType) == 0 )
    113.                printf( "Server " );
    114.             if ( lstrcmpi( "SERVERNT", szProductType) == 0 )
    115.                printf( "Advanced Server " );
    116.  
    117.             printf( "%d.%d ", osvi.dwMajorVersion, osvi.dwMinorVersion );
    118.          }
    119.  
    120.       // Display service pack (if any) and build number.
    121.  
    122.          if( osvi.dwMajorVersion == 4 &&
    123.              lstrcmpi( osvi.szCSDVersion, "Service Pack 6" ) == 0 )
    124.          {
    125.             HKEY hKey;
    126.             LONG lRet;
    127.  
    128.             // Test for SP6 versus SP6a.
    129.             lRet = RegOpenKeyEx( HKEY_LOCAL_MACHINE,
    130.                "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Hotfix\\Q246009",
    131.                0, KEY_QUERY_VALUE, &hKey );
    132.             if( lRet == ERROR_SUCCESS )
    133.                printf( "Service Pack 6a (Build %d)\n", osvi.dwBuildNumber & 0xFFFF );        
    134.             else // Windows NT 4.0 prior to SP6a
    135.             {
    136.                printf( "%s (Build %d)\n",
    137.                   osvi.szCSDVersion,
    138.                   osvi.dwBuildNumber & 0xFFFF);
    139.             }
    140.  
    141.             RegCloseKey( hKey );
    142.          }
    143.          else // Windows NT 3.51 and earlier or Windows 2000 and later
    144.          {
    145.             printf( "%s (Build %d)\n",
    146.                osvi.szCSDVersion,
    147.                osvi.dwBuildNumber & 0xFFFF);
    148.          }
    149.  
    150.  
    151.          break;
    152.  
    153.       // Test for the Windows 95 product family.
    154.       case VER_PLATFORM_WIN32_WINDOWS:
    155.  
    156.          if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 0)
    157.          {
    158.              printf ("Microsoft Windows 95 ");
    159.              if ( osvi.szCSDVersion[1] == 'C' || osvi.szCSDVersion[1] == 'B' )
    160.                 printf("OSR2 " );
    161.          }
    162.  
    163.          if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 10)
    164.          {
    165.              printf ("Microsoft Windows 98 ");
    166.              if ( osvi.szCSDVersion[1] == 'A' )
    167.                 printf("SE " );
    168.          }
    169.  
    170.          if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 90)
    171.          {
    172.              printf ("Microsoft Windows Millennium Edition\n");
    173.          }
    174.          break;
    175.  
    176.       case VER_PLATFORM_WIN32s:
    177.  
    178.          printf ("Microsoft Win32s\n");
    179.          break;
    180.    }
    181.    return TRUE;
    182. }
     
  6. GMax

    GMax Member

    Публикаций:
    0
    Регистрация:
    3 июл 2006
    Сообщения:
    218
    Посмотри исходники ARTeam Sysinfo
     
  7. zaqer

    zaqer New Member

    Публикаций:
    0
    Регистрация:
    10 мар 2008
    Сообщения:
    22
    Спасибо уже видел, кто нибудь пользовался WMI?
     
  8. PE_Kill

    PE_Kill New Member

    Публикаций:
    0
    Регистрация:
    16 янв 2006
    Сообщения:
    107
    zaqer Да
     
  9. zaqer

    zaqer New Member

    Публикаций:
    0
    Регистрация:
    10 мар 2008
    Сообщения:
    22
    PE_Kill
    Можно поподробнее на масме желательно.
     
  10. sasha_s

    sasha_s New Member

    Публикаций:
    0
    Регистрация:
    21 дек 2005
    Сообщения:
    165
    Адрес:
    Belarus
    А где взять?
    Очень интересует. (Гугель результатов не дал...)
     
  11. G13

    G13 New Member

    Публикаций:
    0
    Регистрация:
    24 мар 2006
    Сообщения:
    499
    http://xchg.info/ARTeam/Tutorials/ARTeam_Releases/Hacking_Tool_Developer_Sources_Primer_v10_by_Gunther.rar
    или
    http://arteam.accessroot.com/arteam/site/request.php?285
     
  12. sasha_s

    sasha_s New Member

    Публикаций:
    0
    Регистрация:
    21 дек 2005
    Сообщения:
    165
    Адрес:
    Belarus
    Примного благодарен.